Add data rate calculations for all LinkInterface-derived classes

I ended up converting `LinkInterface` into an abstract base class in order to centralize all of the data rate calculation code I added. This allows for adding data rate calculation code to subclasses in 4 lines of code.

I do not use any of these interfaces (only SerialLink) so this code is entirely untested at runtime. Hopefully someone can check this out with UDP or TCP fairly easily.

**Note**: Nothing was done for adding this functionality to `QGCHilLink`, though it seems that `QGCHilLink` should really subclass `LinkInterface`, from the brief amount of time spent looking at it.