AP_HAL: implement betterstream functions in AP_HAL

this gives more consistancy between ports
AP_HAL_AVR: implement betterstream functions in AP_HAL

this gives more consistancy between ports
AP_HAL_AVR_SITL: implement betterstream functions in AP_HAL

this gives more consistancy between ports
AP_HAL_Empty: updates for new API
AP_HAL_PX4: updates for new API
AP_HAL_SMACCM: updates for new API
AP_HAL: use fabs() in print

fixes build on Arduino
AP_HAL_Empty: added register_io_process()
AP_HAL: added AP_HAL_PX4 define
autotest: make default param files end in .parm

this matches what MP wants in its compare params diaglog
Multiple Rally/RTL point support now done.  If rally points have
been defined, then when RTL mode is entered, the closest Rally
point is chosend and the plane loiters at that point.

Note only 5 rally points can be defined; this is to save space in
the APM's EEPROM.
Merge remote-tracking branch 'upstream/master'