Flight mode config rewrite plus Unit Test

Ran into problems with FlightModeConfig and my APM:Plane. Found out mode switch channel was hard wired to ArduCopter value. Re-wrote to be much more data driven, use the correct parameters for mode switch, support all frame types and add support for Simple Mode. There were quite a few problems in here. Can't remember them all. Hopefully will end up way less error prone in the future. I wouldn't use the diff for code review, since it's more like a new file than a modified one. Also added fairly extensive unit test for it which uses the new mock uas capability.

This may conflict in qgroundcontrol.pro with the TCPUnitTest pull. I'll fix that when it happens.