Handle race conditions preventing MSP430 timers to be set correctly

These occur:
* when the counter is incrementing during the setting of the comparator register (which is the actual implementation of the ```hwtimer```)
* when setting a timer when the counter is overflowing and the overflow-handling interrupt hasn't incremented timer_counter yet (e.g. when you set the ```hwtimer``` from within an interrupt handler)
Plus some minor fixes.