Provide access to non-spatial data associated with a layer

This pull request allows for additional data to be extracted from specific types of layers.

The initial motivation for this change stemmed from the need to spatially represent a Sensor Observation Service.  This can be done at a spatial database level, by creating a WFS view over an underlying Sensor Observation data.  In this view, individual sensors form features.  While some aspects of sensors can be handled through the feature attributes, what is missing is the ability to access time series data.

This pr sets up a 'layer_data' view which is enabled through settings in the layer's metadata of (a) the correct keyword for the layer (in this case: SOS), as well (b) a dictionary in the supplemental information field - this would look something like:
```
{"sos_url":"http://sos.server.org/test/sos",
"observedProperties":["urn:ogc:def:phenomenon:OGC:1.0.30:temperature"], 
"offerings":["WEATHER"]}
```
This pr should not impact on any existing code behaviour, as the code and template changes only take effect once the enablement described above happens.

This code is also designed to be extended in future to handle data from other sources; for example, a NetCDF file.

(We also have additional code that accesses this data to create, for example, time series charts but, based on previous discussions with the dev team, this will probably need to be housed in an app external to GeoNode core.)
Imported here because no other layer view is currently using it.  Should it rather be in the top-level imports (I'm not sure what the guidelines are for this)?