TemporalExtent class remodel

TemporalExtent will now hold a hash of all configured dates as strings,
and every hash cell will hold an array of all times (moments) of that
day. tests updated appropriately
remove rawTemporalExtent
ncwms can fetch timeseries for day
a set data structure based on array
ncwms layer keeps track of pending requests
temporal extent min/max functions rewrite
async temporal extent integration with ui

 * date picker integration
 * time picker integration
 * more tests for temporal extent
 * ncwms initializes to most recent time after extent loaded
set bbox for layer from geonetwork record

when clicking the zoom button, the interface will know how to zoom on
the layer
temporal extent faster generation of missing days

significantly faster loading results in better user experience.
missingDays are calculated as the days load. if more days are added, a
reindex will be necessary though.
avoiding findLayerAsJson for ncwms

probing temporal extent from geonetwork and deciding whether to
call findLayerAsJson or not