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
Merge pull request #394 from PX4/ringbuffer_fix

Ringbuffer fix