stateless ncwms

that chunk of work was starting to get too large and things mostly work, so it's a good time to recap, get some scrutiny, fix things and then continue.

work that was done:
 * remodel TemporalExtent class to be a hash of arrays, each key is a date (stringified) and the array holds moments which are the times of the day
   * all days loaded when ncwms loads
   * times of day are loaded as needed
 * change ui to correspond to those changes
 * modify tests where required

things that don't work:
 * findLayerAsJson is still being called also for ncwms layers, more properties should be taken from the metadata rather than the scanned properties (bounding box etc)
 * next/previous buttons don't work if you move to a day that was not loaded previously - will be fixed
 * make the url which gets the times of the day to have a controller (and also move json parsing logic to be in grails)
date will always exist.
new moment.utc("stupiddate"); creates an object