Fix #48 for unexpected program running

This patch provide two fix:
1. For the resetStopOnReset function, there's a redundant reset which will lead to the issue that during this function the user program will still run for a while.
2. During the load process, setTargetState need to set C_HALT bit and use resetStopOnReset instead of reset to avoid unexpected running of previous program.
Here we meet the same problem, if we call reset, than the mcu will run after reset until we explicitly halt it.