AP_HAL: rename Semaphores cpp file to match header
HAL_PX4: support PPM RC Input

HIL flying now works properly
Add AP_HAL_SMACCM implementation.

- Add a board definition for SMACCMPilot.
- Support the SMACCM HAL in required utility libraries.
AP_Baro: Add I2C support to MS5611 driver.
AP_Baro: Add CONFIG_MS5611_SERIAL option to choose between SPI and I2C.

- Update ArduCopter and ArduPlane modules to pass the correct serial
  driver to the MS5611 driver.
- Update barometer examples, assuming SPI.
AP_InertialSensor_MPU6000: Poll status register if there is no data ready pin.
AP_HAL: New semaphore interface

* it now looks like a semaphore!
AP_HAL_AVR Scheduler: _in_timer_proc is volatile protected

* and AVRSemaphore is a friend, so it can read _in_timer_proc
  to know the current context.
AP_HAL_AVR: Implements new Semaphore interface
AP_HAL_AVR: Semaphore unit test
AP_HAL_Empty: implement new Semaphore interface
DataFlash: change to new style Semaphore library
AP_ADC: uses new semaphore interface
AP_Baro_MS5611: uses new semaphore lib
AP_InertialSensor_MPU6000: uses new semaphores

* some refactoring to fix differences between timerprocess
  and non-timerprocess usage
Optflow: uses new Semaphore
AP_HAL_SMACCM: Update to new semaphore interface.

- Renamed files to match AVR HAL.
Use HAL suspend/resume timer procs rather than atomic.

- Preparation for removing begin/end atomic.
AP_HAL_SMACCM: Scheduler timer process implemented correctly.

- Use "g_atomic" for suspend/resume timer procs.