Use a real timer for time events.

We have been using the watchdog timer to generate QF_tick() calls.
This works, but means that we must handle those events within two
times the period, or we get a watchdog reset.  If we want shorter
ticks, the watchdog period may get close to what we can guarantee to
service.

So move QF_tick() to a real timer interrupt handler, and slow down the
watchdog timer.  We still generate WATCHDOG_SIGNALs and reset the
watchdog inside the main loop.

QF_tick() is only called on a subset of timer interrupts.

We're also more strict with the use of BSP_TICKS_PER_SECOND.

Signed-off-by: Russell Steicke <russells@adelie.cx>