Compass: add DEV_ID param and configured method

These allow checking the offsets were created with the current compass
device.
Compass: add dev_id for PX4

dev_id is retrieved from PX4Firmware via ioctl call
Compass: add dev_id for VRBrain
Copter: pre-arm check uses compass configured method
GCS_MAVLink: add second mag to PREFLIGHT_SET_SENSOR_OFFSETS

Updates the comments for parameter 1 only, this does not affect the
message format.
GCS_MAVLink: generate after adding second mag to PREFLIGHT_SET_SENSOR_OFFSETS
GCS_MAVLink: add deprecated note to SET_MAG_OFFSETS
GCS_MAVLink: generate after adding deprecated note to SET_MAG_OFFSETS
Compass: save_offsets accepts compass instance
Compass: set_offsets modified to also save offsets
Compass: add learn_offsets_enabled accessor method
Compass: example sketch update for set_and_save_offsets
Copter: only save compass offsets when learning is on
Copter: PREFLIGHT_SET_SENSOR_OFFSETS used to set compass offsets

remove deprecated ardupilot specific SET_MAG_OFFSETS
Plane: rename compass set_and_save_offsets
Plane: PREFLIGHT_SET_SENSOR_OFFSETS used to set compass offsets

replaces ardupilot specific SET_MAG_OFFSETS message
Rover: rename compass set_and_save_offsets
Rover: PREFLIGHT_SET_SENSOR_OFFSETS used to set compass offsets

replaces ardupilot specific message SET_MAG_OFFSETS
Arming: use compass.configured method

This checks that when compass offset learning is off, that the offsets
are non-zero and that the detected device id matches the device id
stored to eeprom when the offsets were last saved.
Compass: sanity check instance in set_and_save_offsets