Restructure LinkManager/MAVLinkProtocol

- Moved MAVLinkProtocol out of MainWindow to LinkManager. The driver for this was to be able to write unit tests that could use MockLink without needing a MainWindow around.
- Removed LinkInterface::connected(bool) in order to just have a single connected(void) signal. This way you can use the new connect compiler failing syntax. Updated all the usage of connected(bool) to connected and disconnected signals.
- Remove ProtocolInterface abstraction below MAVLinkProtocol. This abstraction was meant to allow adding new protocols in the future. The problem was that it was only about 10% implemented throughout the codebase. Most code just called MainWindow::getMAVLink directly which breaks the abstraction. Instead of trying to fix it I removed it since looking at the codebase it pretty unlikely to support a different/multiple protocols without major change. For me simpler is better.
- Renamed various methods along the way so that they make more sense.

This fixes Issue #1061