Replace the 16mhz clock with a low-freqncy external crystal based clock source at statup.
This results in a big win in power consumption.
add a missing call to us_ticker_disable_interrupt from us_ticker_remove_event.
reimplement the micro-second ticker on nRF51822 using the app_timer module (RTC)
add a minor comment to explain some complex branching in us_ticker_irq_handler()
add a cachedInterruptTimestamp to us_ticker_set_interrupt() to short-circuit duplicate calls.
introduce a timestamp_t to track timeouts for TimerEvents.
The previous type used for this purpose was unsigned int, which was both
un-portable and liable to wrap-around.
updated call to APP_TIMER_INIT() to use contants from projectconfig.h
simplify the algorithm which keeps only one app_timer timer running.
white space diffs.
update definitions for us_ticker_set_interrupt() across all platforms to use timestamp_t
use constants from projectconfig.h as arguments for APP_TIMER_INIT()
minor simplification of a reused expression
use timestamp_t for Ticker::_delay
add a destructor for Ticker.
changes proposed from Martin's review
These changes allow us to re-implement us-Ticker using the RTC for the
nRF51822. There are two major themes here:

1. timestamp_t as an abstraction for time values managed by
   Ticker. Using uint64_t for timestamp_t allows a wraparound-free
   Ticker. This change forces us to update the definitions of usTicker
   for all platforms; but the changes beyond nRF51822 aren't major.

2. reduce power consumption on the nRF51822 by removing the need for
   the high-frequency processor timer; and reimplementing it using the
   RTC.

I've also replaced high-frequency clock with low-frequency external
clock during system startup of the nRF51822. This brings a major win
in power consumption.