Mission: handle Loiter direction

loiter-unlimited, loiter-turns and loiter-time cms specify the turn
direction in Param3.  This is stored in the location's loiter_ccw flag.
Previously supported only in Plane, moving here allows us to share more
code with Plane, Copter, Rover.
GCS_MAVLink: loiter direction removed

This is now handled in Mission library
GCS_MAVLink: added five handle_mission methods

The five methods moved from the vehicle specific code are
handle_mission_request_list, set_current, count, clear_all and
write_partial_list
Plane: use common GCS_MAVLink handle_mission methods
Copter: use common GCS_MAVLink handle_mission methods
Rover: use common GCS_MAVLink handle_mission methods
GCS_MAVLink: added have_flow_control() method

can be used to change speed of handling some protocol methods, as we
know communication will be reliable
Plane: much faster mission upload

send next WP request immediately if possible. This speeds up mission
upload on USB by about 10x
Plane: use _send_buf() functions to reduce stack usage in MAVLink replies

this re-uses the incoming message buffer in constructing the reply
GCS_MAVLink: re-generate MAVLink headers
GCS_MAVLink: moved parameter and stream handling into common code

this keeps it in common between vehicles, and saves stack space
GCS_MAVLink: moved RADIO_STATUS handling into common code
GCS_MAVLink: added save parameter to handle_request_data_stream()

this allows copter to not save stream rate changes
GCS_MAVLink: make DataFlash a pointer

handle sketches where DataFlash is not available
Plane: use new common MAVLink code
Copter: use new common MAVLink message handlers
Rover: use new common MAVLink message handlers
AntennaTracker: fixed for new MAVLink handling
CPUInfo: fixed build
VARTest: fixed build