Add support for 32 bit timers TIM2 and TIM5 (id 1 and 4).

These timers now handle 32 bit counts & delays.
Fix platform_s_timer_delay() so it doesn't hang when specified delay is too large.

Previously, if the specified delay resulted in a final value that
was wider than the timer width, the code would loop forever because the
timer counter would never reach the value of final.

Now, it checks to see if the timer has wrapped and, if so, reduces the value
of final by the timer's max count value.

An added benefit is that now all timers can delay for up to the maximum
delay handled by the target whereas previously the maximum delay was limited
by the width of the counter.
In platform_s_timer_delay() don't assume timer reload value is all ones.

If the timer has been used to clock ADC or PWM or to generate interrupts
the reload value is unlikely to be all ones. The reload value will be
all ones if the timer has just been used as an elua timer.

So, when the timer wraps use the real reload value which is in ARR rather
than assuming it is 0xFFFF or 0xFFFFFFFF.
Keep the timer running when stopping timer generated cyclic interrupts.

For some reason (unknown to me) platform_s_timer_set_match_int() was clearing
the timer's CR1 and CR2 regs when the interrupts are to be stopped. This
had the effect of stopping the timer completely so a delay() on that timer
would hang forever. Now the timer keeps running and can be used normally
after the interrupts have been stopped.
Merge pull request #49 from smartavionics/mb-stm32f4-timer-mods

Mb stm32f4 timer mods