HAL_PX4: switched scheduler to use a pthread

this allows the timer tasks to access file descriptors in the main APM
task, which makes writing PX4 device drivers much easier
HAL_PX4: added AnalogIn driver

this allows airspeed to work on a PX4
HAL_PX4: start adc driver in rc.APM
Plane: setup PX4 airspeed analog port
HAL_PX4: enabled AnalogIn driver
Plane: cleanup driver declaration

remove a lot of the #if nesting
Rover: fixed mavlink fetch of 16 character parameter
Copter: fixed mavlink fetch of 16 character parameter
Plane: fixed mavlink fetch of 16 character parameter
HAL_PX4: added Util instance

this fixes hal.util->vsnprintf_P()
AP_Baro: added timer to PX4 driver

this gives us more samples when main sketch is reading slowly
AP_InertialSensor: user a timer to drive data collection on PX4

this reduces the chance of missing a sample if the main sketch is a
bit slow
AP_InertialSensor: added timer for accumulating samples for PX4

this makes the driver much more tolerant of sketch timing errors
HAL_PX4: name the eeprom file after the sketch

this makes it easier to switch between ArduPlane and ArduCopter
build: add CONFIG_APM=y to build

this allows us to disable some of the larger apps in the px4 build, to
save flash space
build: fixed dependency generation for PX4 build
Rover: run serial0 at 57600 on PX4
Copter: run serial0 at 57600 on PX4
HAL_PX4: added a read buffer to the UART driver

this lowers the average cost of reading bytes by a large amount, and
prevents the GPS driver from chewing lots of time.
HAL_PX4: improved efficiency of serial writes

use buffer at a time writes when possible, and use O_NONBLOCKING to
avoid txspace()