Feature oneshot125a

This pull request follows on from https://github.com/cleanflight/cleanflight/pull/172 as it has all the changes merged in from master since then.

It also has a bugfix for when looptime is longer than timer size (ie setting looptime to 8300 uS would give strange output previously, but now it does the right thing).

The attempt at getting CC3D PPM to work will probably fail, due to the way that the timer overflow is triggered.
This needs some work in future - timers used for output on CC3D are TIM4, TIM4, TIM4, TIM1, TIM2, TIM3, so if someone moves PPM input, problems will happen.

At this time only reasonable fix I can think of is to check PPM mapping on all targets and write working test here (maybe only TIM4 is affected). 

In future some resource allocation scheme can be implemented, but that is out of scope of this feature