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`
This feels pretty janky... :poop: but I'm not sure where else to go with it. Introducing yet another server request to retrieve dates seems like a bad idea... but maybe not?