Prepare MapView for multiple data sources

This factors the layer specific code out of the `MapView` object (mostly) so that it will be prepared to handle displaying scalar fields.

- Changes `THREDDSVectorFrameSource` to just `THREDDSFrameSource`
- Rename `VectorFrame` in all its various incarnations to `VelocityFrame`
- Add another fragment to data endpoint urls `/data/thredds/grid` -> `/data/thredds/velocity/grid`
Docstrings, John. :book: