px4io: configure APM use of px4io without RC handling
APM: configure px4io for no RC handling and no mavlink pipe
hmc5883: add perf count, and removed unnecessary checks for -32768

we've already checked that the absolute value is <= 2048
ringbuffer: added force() and use lockless methods

this adds force() which can be used for drivers wanting consumers to
get the latest data when the buffer overflows
ringbuffer: added resize() and print_info() methods

this simplifies the drivers
hmc5883: use a RingBuffer to hold report queue

this simplifies the queue handling, and avoids the need for a
start()/stop() on queue resize
mpu6000: use a wrapper struct to avoid a linker error

the linker doesn't cope with us having multiple modules implementing
RingBuffer<gyro_report>

this also switches to use force() instead of put(), so we discard old
entries when the buffer overflows
mpu6000: fixed race condition in buffer increment
airspeed: convert to using RingBuffer class
l3gd20: convert to using RingBuffer class
mb12xx: convert to using RingBuffer class
bma180: convert to using RingBuffer
lsm303d: convert to using RingBuffer
ms5611: converted to using RingBuffer
Rework the ringbuffer class so that it's not templated, and refactor its clients so they aren't dancing around the linker anymore.
ringbuffer: converted to item_size units

this fixes a number of indexing bugs
make upload on Linux much more reliable

Upload on Linux now only tries usb-3D_Robotics boards. This should
also make it handle more ports on MacOS
px4io: split io_handle_battery() out from io_handle_status()

ready to add vservo and rssi
uORB: added new servorail_status object

used for VSERVO and RSSI on FMUv2
px4io: added monitoring of vservo and vrssi

publish via servorail_status ORB topic