AP_Param: use const refs in a few more places

reduces code size by a couple of hundred bytes
libraries: replace constrain() with constrain_float()

this makes the type much more obvious. Thanks to Tobias for the
suggestion.
Rover: replaced constrain() with constrain_float()
Copter: replaced constrain() with constrain_float()
Plane: replaced constrain() with constrain_float()
Copter: fixed some uses of constrain_float() to be right type
AP_Compass: added COMPASS_ORIENT parameter, to support external compasses

this allows the user to configure the compass for any orientation
supported by our rotation library
Rover: updates for new compass API
Copter: updates for new compass API
Plane: updates for new compass API
Tools: updates for new compass API
AP_AHRS: update for new compass API
AP_Declination: fixed example build
AP_Compass: removed old orientation defines

we now use the rotations in libraries/AP_Math/rotations.h
AP_Compass: fixed PX4 build
Plane: fixed mavlink levelling

this was broken by a recent commit (after 2.72 was released)
AP_Compass: fixed the HIL sensors compass

this sets up good compass values for HIL sensors
Rover: use new HIL compass API
Copter: use new HIL compass API
Copter: removed the deprecated HIL sensors interface

must use the new HIL_STATE message now