New AP_Compass API

We have developed a new AP_Compass API that divides the previous one into a front-end and a back-end layer. It is based on the new AP_GPS API developed for @tridge