New timer implementation

This is first part of new softserial code. Main timer code is changed, changes to rest of code are kept to minimum.

macros for BASEPRI based synchronization are added to project (atomic.h)

TIMER_PERIOD fixed in pwm_rx.c
Merge remote-tracking branch 'refs/remotes/upstream/master' into feature-timer
Code cleanup / fixed missing TIM8_UP handler
PORT103R - Initial support for the Waveshare Port 103R development
board.
EUSTM32F103RC - Add inverter.
Replacing the init code for the UG2864 display with code that works on
the cheapest displays currently available from banggood.com.

Cleanup work will happen once the code has been tested on more displays,
such as the ones from Wide.HK and the Crius.

The default has changed to these boards because they are cheap and do
not require modification to get them working, unlike the Crius boards.
Delete some baseflight test code.
Add a debug page to the OLED display.
Adding OpenTX SBus notes.
Fixed original softserial code

Bit end timer must by shifted by half-bit period to startbit edge, so that next edges are in middle of bit interval. This behavior was masked with old timer code, but noise immunity was probably very low.
Merge remote-tracking branch 'refs/remotes/upstream/master' into feature-timer
Merge pull request #160 from ledvinap/feature-timer

New timer implementation
Updating serial documentation to cover new defaults, updated examples.
OLIMEXINO - Disable MPU3050 support.
added smartport telemetry

Conflicts:

	src/main/telemetry/telemetry.h
added single wire half duplex UART

Conflicts:

	src/main/telemetry/telemetry.h
Updating telemetry documentation to cover SmartPort (S.Port).
Minor formatting fix.
Adding details of the new serial port scenario for SmartPort telemetry.
Adding a FIXME to the SmartPort code.