core/sys/rtimer.h, rtimer.c: support multiple timers; allow cancellation

This rewrite of rtimers introduces the following changes:

- more than one rtimer can be used concurrently

  Some operations are O(n) for the number of active rtimers, so
  their number should still not be excessive.

- when setting an rtimer, the handler is guaranteed to be called
  exactly once. Before, it could also happen that it was never
  called or that it was only called with a very large delay,
  depending on the underlying architecture support.

- rtimers can be cancelled with rtimer_cancel. Cancellation means
  that the handler function will not be invoked after rtimer_cancel
  returns. The rtimer structure may still be used internally and
  must not be overwritten or deallocated.
core/sys/rtimer.c (next_timer_locked): we need to reschedule if the timer was cancelled

If the timer about to expire was cancelled, we don't call any timer
handler and we therefore always have to schedule the next timer.
This bug was reported by Joakim Eriksson.
core/sys/rtimer.c (set_locked): correct setting of rtimer->ptr
core/sys/rtimer.h, rtimer.c: support setting rtimers from interrupts (draft)

Underlying interrupt model:
- non-interrupt code can be interrupted by a timer interrupt or any
  other interrupt,
- a timer interrupt can be interrupted by a non-timer interrupt,
- non-timer interrupts cannot be interrupted by something else,
- any interrupt can call rtimer_set and rtimer_cancel,
- timer interrupts can also call rtimer_run_next.

Code is only lightly tested. May still harbour bugs.
cpu/arm/k60: Implement clock via rtimer API.

 - Change rtimer to use LPTMR (support STOP modes while rtimer is active)
 - Change clock module to use rtimer (instead of LPTMR hardware)
 - Reduce rtimer_clock_t to 32 bits (was a hassle to handle 64 bit)
 - Reduce RTIMER_SECOND to 32768 (was F_BUS == 48000000)
 - Handle the RTIMER_PERIOD overflow correctly.
 - Handle timers set beyond the reach of the LPTMR.

LPTMR is only 16 bits wide and we handle rtimers beyond the 2 second limit
of the hardware timer by keeping track of a 32 bit offset.

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
Merge pull request #29 from gebart/for-mulle/rtimer-clock

Mulle clock and rtimer refactoring