DataFlash: add const to hal instance
AP_Compass: Add backend
AP_Compass: separate logic to backend

Compass is separated in a backend and
frontend interface. Compass class corresponds
now with the frontend.
AP_Compass: Update HIL to the backend
AP_Compass: Update HMC5843 to the backend
Copter: Update compass to the new interface
Rover: Update compass to the new interface
Plane: Update compass to the new interface