Rev4 update

This is in sync with https://docs.google.com/document/d/1m7Cep2U5eCe5M62Y6a_4CNGF7QM4UgJtmMFq2FrRo3s/edit?usp=sharing

and implements the proposals there. Please carefully review (in particular removed messages). This will go soon in master after another community review round. Criticism now or never 8).
It's certainly nice that we have the high level commands.  For Arducopter we will need to add a lot of new commands (things like "AutoTune start", "Retract landing gear" etc) to capture all the items that pilots can currently kick off only from transmitter switches.
Any reason for the wide spacing of numbers?  I.e. MAV_CMD_IMAGE_STOP_CAPTURE is 2001 but MAV_CMD_VIDEO_START_CAPTURE is 2500.  I can understand a spacing of say 10 to allow for future growth.