Rename SpreaderRegion to SpreaderPooler
Unify graphics options
Optimize code to run faster

* Reduce unnecessary calls to pooler when updating parameters
* Preset array sizes in ContinuousMoments
* Use partial_sort when finding nearest N neighbours in Input
New options to limit locations in Input

* Added removeLocations, latRange, and lonRange options to
  make it easier to define subsets of locations.
If no obs dataset specified, use forecast locations

* Previously, to determine which locations forecasts are to be produced
  for, either an obs dataset must be specified, or a dataset using
  locations= attribute was required.
* Instead, if no such datasets are specified, produce forecasts for each
  location in the forecast dataset specified by inputs=...
Remove unnecessary caching in ConfigurationDefault

* Caching the corrected values is no longer needed, since the driver
  only makes repeated calls to the final distribution only.
Optimize Input for speed

* InputNetcdfCf: Only compute elevation gradient if asked for.
* getOffsetIndex is a bottleneck. Cache the last computed index.
Optimize subsetting of locations with lat/lon ranges

* For large datasets, the original implementation that subsets a set of
  location based on lat/lon ranges was slow.
Graphics enhancements

* Allow x-axis to be location index, id, elevation, latitude, and longitude
* Nicer colours for precip
* Allow offset to be an array
Bug fix in StepInterpolator

Values outside the interpolation domain were set to 0 and 1. This should
instead be the values at the domain edges.
Added PoolerElevation
Data now always calls Downscaler for all lookup locations

* Previously, Data skipped the downscaler when the retrieval location
  originates from the input dataset (to speed things up). However, since
  the downscaler in general does not produce the same values for points
  where raw data exists, this shortcut is not valid.
* This only affects runs where the output locations are the same as the
  input forecast locations
* To maintain the origin speed benefit, NeighbourhoodNearest uses the
* lookup location if a neighbourhood of size 1 is used for the dataset
  where the lookup location belongs to.
Allow vector of inline schemes to be used in options

* Previously it was not possible to have a vector of inline schemes.
  I.e. the following was not possible:
  neighbourhoods=[class=...],[class=...]
DownscalerNeighbourhood can not use multiple neighbourhoods
Selector can now take multiple neighbourhoods
SelectorAnalog can now use the predictand as the analog variable

Previously the analog variables had to be explicitly defined. Now if
variables is left unspecified, the selector will use the forecast
variable (predictand) as the single analog variable.
New convention for naming schemes
Properly parse offset token (%O) in filename format in Input

* Previously, %O did not properly get recognized as the token
  representing the offset.