core: hwtimer: use disable/restoreIRQ

hwtimer still uses dINT/eINT(). This PR makes it use disableIRQ/restoreIRQ instead.
Shouldn't the `if (!inISR())`  be unnecessary?