build: allow absolute paths for module sources
build: allow additional flags to be passed via EXTRAFLAGS

this allows for flags needed for the APM build
hmc5883: fixed use of onboard I2C compass
otgfsdev: removed a DEBUGASSERT() that causes a crash on windows reconnect

when windows reconnects to a ACM device, this assert sometimes
triggered. The case it is looking for is handled further down.
libdtoa: fixed handling of NaN and Infinity

otherwise we print thousands of 00000 characters
px4io: allow set of output rates above 400 and below 50

let the IO board decide if the rate is reasonable, and limit it there

this fixes the rates on ArduCopter, which try for 490
px4io: ensure upload device is closed after use

this should release it for PWM use
pwm: added -m option

this allows setting of the channel mask directly, which is useful for
testing
libdtoa: don't print trailing zeros if no decimal is printed
libvsprintf: fixed handling of "%f" to print precision 6
stdio: fixed build error for stdio on px4io
px4io: return raw ADC value for current

we don't know how to scale it as we have no info on what sensor is
attached. As we are returning a uint16_t it is better to let the FMU
sort it out or we'll just lose precision.
px4io: changed adc_measure() to return 0xffff on error, and lower timeout

the timeout of 1ms was far too long, and could impact flight
performance

Returning 0xffff on error matches the FMU code, and allows bad values
to be discarded
px4io: fixed voltage/current output and add discharged_mah calculation

this integrates the current over time to calculate discharged_mah, and
allows the scaling of the current and the bias to be set with the
px4io command
px4io: handle errors from adc_measure()

don't update the voltage/current values on error