Allowing oneshot125 functionality to work on a Naze board.

This code has been flight tested, but will have problems on a CC3D board, and also when the looptime is longer than 8200 uS.
Bugfix for when looptime is longer than timer size.

Previously, when a looptime of 8300 uS was chosen, the output would be unpredictable.  Now the shots are fired only after every loop, not when the timer overflows.
First attempt at getting CC3D PPM to work when oneshot is enabled.

I don't think that this will work, as we are manipulating the timer value to trick it into overflowing.  Better would be to force an overflow a different way, that would preserve the current timer value.  This would then give the proper value to the CC3D PPM routine, provided it was then divided by 8.
Improvement to the way that timers are forced to overflow, which should allow PPM on CC3D to work properly.
Updates to the way that timers are forced to overflow in oneshot mode.

Now the current count value is saved, and then passed to the listeners.  This _should_ mean that CC3D PPM might work this time.
Putting overflow code inside an atomic block, and style improvement (using predefined constant instead of raw number)
Tightening up code inside atomic block, and whitespace changes (tabs to spaces)
Adding documentation page for using Oneshot125
Merge branch 'feature-oneshot125a' of https://github.com/nebbian/cleanflight into nebbian-feature-oneshot125a
Remove usage of feature() from pwm driver code so that driver code does
not have a dependency on config.c.
Merge branch 'nebbian-feature-oneshot125a'