Improved user control architecture

## WIP

This is an implementation based on my comments here https://groups.google.com/forum/#!topic/phoenixpilot/xbE3ws3DzUc

Basically it separates out the various user control sources and failsafes into separate files and tries to formalize an interface between them.  I think it should also help for more flexible use of flight mode switches etc in the future.

I'd mostly like some early feedback before going to far with this.