ManualControl: move the muxing logic into the core task and add a ControlSource field

This adds a ControlSource field to FlightStatus which is really useful for being able to
tell in logs when things like failsafe or geofence are engaged.  Also from the commit log:
    
    The logic for selecting transmitter/tablet/failsafe was previously
    in the transmitter sub-module.  However, in the future things like
    geofence will not depend on the transmitter and thus it doesn't make
    sense to spread the functionality around.
    
    I'm still not entirely pleased with how the logic looks in manualcontrol.c
    because it is spread between the main task and control_source_select due
    to the requirement of failing back to failsafe for a bad tablet setup.