mavlink: major rewrite, dynamic streams configuration

 - Should consume less CPU, because of very careful polling
 - Mavlink streams can be added / removed and configured (messages rate) in runtime, reusing uORB subscriptions if possible
 - Adding new mavlink streams is more flexible using inherited classes instead of callbacks, all state information can be stored in the inherited class fields, any number of subcriptions allowed
 - Mavlink streams identified by string, e.g. `add_stream("ATTITUDE", 10.0f)` (add ATTUTUDE stream at 10Hz)