AP_Baro: skip timer if we don't get the SPI semaphore
AP_InertialSensor: ensure we always have the SPI semaphore for MPU6k
AP_InertialSensor: poll for new data in num_samples_available()

this lowers the latency for new data
HAL_AVR: make _taken volatile
AP_HAL: added WARN_IF_UNUSED macro

useful for key functions
AP_HAL: mark semaphore take operations as WARN_IF_UNUSED

this prevents common bugs
AP_Compass: ensure we check we got the semaphore
AP_Baro: added accumulate() function

this allows us to read the BMP085 much faster
AP_Baro: update example to use accumulate()
Copter: check bitmask in more logging functions
Copter: use barometer.accumulate()

this gives us more consistent timing and faster baro reads on APM1
AP_Baro: read 4 pressure values for every temperature value on BMP085
Copter: read baro at 50Hz
MPU6000: Use signed addition when accumulating readings.

- Fixes very erratic accel readings on the PX4 board.
MPU6000: Flip Y and Z axes for SMACCM_HAL.

- The accelerometer is upside-down on the PX4FMU vs the APM2.
AP_HAL_SMACCM: Implement RCInput driver.
MS5611: Fix CONFIG_MS5611_SERIAL definitions.

- Make sure the values are defined as integers.  We were always using
  SPI rather than using I2C when desired.
ArduCopter: Add AP_HAL_SMACCM support.

- Added default configuration to "config.h".
- Added main function to run under FreeRTOS with HWF4.
AP_HAL_SMACCM: Fix pin conflict between uartC and I2C.

- uartC is currently disconnected.
- Set uartB to USART6 for GPS communication.
AP_HAL_SMACCM: Increase scheduler stack sizes.