That 10K resistor to +Ve is called a pull-up resistor. You can look it up, but a brief explanation:
The pin MCLR reads the logic level at its input to reset the MCU (where its active low, so low=reset, high=run). "By default" we want to the MCU to run of course, so you can tie it to +Ve.
However as Mike says, you may also want to program the chip. To do that, the programmer needs to reset the chip so it can do it's programming protocol magic. However, if you tied it hard to +Ve, it's not possible to make it any other logic level without shorting the supply +Ve. So a pull-up resistor is added. Then the programmer can still drive the signal to ground, and the 10K resistor limits the current. If the programmer is not connected or driving the pin, then the 10K sets the 'default' value.
There is also a pull-down resistor, which works the same but exactly opposite. It creates a 'zero', but another circuit can drive the signal high with a limited current.
And indeed, if you can: always try to find space to include an ICSP header. Removing chips all the time to reprogram and test is a hassle. I don't think the PIC16F84 supports debugging as its quite old, but modern PICs and other MCUs also allow the code to be paused and inspected while its running. This works best when the chip is in the circuit it needs to operate.