GCS_MAVLink: added SERIAL_CONTROL message definition

will be used for on-board radio and GPS firmware update and control
over USB
GCS_MAVLink: rebuild MAVLink headers
GCS_MAVLink: implement SERIAL_CONTROL MAVLink message
AP_GPS: added lock_port() interface

used by SERIAL_CONTROL message
Plane: added support for SERIAL_CONTROL message
Copter: added support for SERIAL_CONTROL message
Rover: added SERIAL_CONTROL support
AP_Notify: Support all GPS status flags, with status >= GPS_OK_FIX_3D notified as having a lock
AP_GPS: Support fix types of DGPS and RTK
SITL: Adding Swift Binary Protocol GPS type
AP_MATH: Adding WGS GPS conversions, CRC16 checks, and double-precision Vectors and Matrices
SITL: Adding GPS types for Swift Binary Protocol
 AP_HAL_AVR_SITL: Adding Swift Binary Protocol stand-alone simulator
AP_GPS: Swift Binary Protocol SINGLE-POINT-POSITIONING Driver

This is the SBP driver for Piksi, Lodestar and other forthcoming Swift Navigation GPSes.
This driver currently implements three things:
- Implements a lightweight SBP protocol detection system
- Implements Piksi as a single-point-positioning GPS (same as ublox/others)
- Implements hardware logging of GPS health and baseline messages

Forthcoming iin future updates:
- Need to implement the RTK functionality
AP_GPS: fixed some warnings in SBP driver
AP_GPS: disable SBP driver on APM2

the driver uses double precision floating point, which can't work on
8bit AVR with gcc