board_serial: use a uint8_t buffer

we should not be using 'char' for binary APIs, as the C standard does
not specify if it is signed or unsigned, so results may not be
consistent
mpu6000: allow disabling of on-sensor low pass filter

used for vibration testing
px_uploader: added ModemManager warning
Improve modem manager warning to avoid having smart people tell us we have Linux compatibility issues while we actually do not.
lsm303d: disable check_extremes code

this could trigger with a bungee launch, and could cause higher
latency due to SD card writes
FMUv2: added defines for FMUv3 sensors

this enables EXT0 to EXT3 on external SPI bus, and gives correct names
for FMUv3 board
SPI: make _bus protected

this allows runtime use of internal/external bus to determine if DRDY
should be used on the L3GD20
l3gd20: added -X switch for external bus
lsm303d: added -X option for external bus
mpu6000: added -X option for external bus
ms5611: added -X option for external SPI bus
mpu6000: allow for two mpu6000 instances, one internal, one external

split g_dev into g_dev_int and g_dev_ext
FMUv2: added define for PX4_I2C_BUS_ONBOARD

needed for hmc5883 on main bus (for FMUv3)
lib/conversion: added rotate_3f()

will be used for user specified rotations in sensor drivers
mpu6000: added -R rotation option
Merged lsm303d update, keeping default frequency
Merged L3GD20 orientation flag while keeping original bus speed
hmc5883: added support for -R rotation option
added support for two instances of hmc5883 driver
hmc5883: added -C option to calibrate on startup

Conflicts:
	src/drivers/hmc5883/hmc5883.cpp