Fixes bug where the Run accidentally deletes inputs

Run needs to load an input to find which offsets and locations to
produce forecasts for (if not provided in the run namelist). However,
Run deletes these inputs, despite the fact that InputContainer is
responsible for this.
Speedup accessing locations for large Inputs

Inputs with many locations causes a large amount of data to be
duplicated when getLocations() is called. Return the vector by reference
instead.
Create InputGrid scheme
Allow forecasts to be produced for datasets without Obs

Previously, the program aborts when attempting to produce forecasts for
non-Obs locations. For non-Obs locations, a missing obs is used in the
Outputs.
Add DownscalerNearestElevation
Folder containing sinusoidal dataset had the wrong name

Rename inputs/bogus to inputs/sine
Get available dates in Input made more robust

Input::getDates did not work properly when data files are organized
within date and/or init folders.
Fixes unsafe use of vector of members in Input

Use getMembers(), instead of mMembers
Fixes SelectorAnalog for non-zero inits and by adding 'dataset'

* Add 'dataset' option, to specify which dataset to use for analogs.
  Don't rely on the default dataset because the downscaling isn't
  working within Data
* Fixes problem when running analog method with non-zero inits
Change Component to Processor

Create a new abstract class Processor, which takes much of the
functionality from the Component class
* Used for components that require parameters

Component is now the superclass of Processor, and is used by classes
that do not require parameters such as Input, DetMetric, Interpolator,
Measure, Metric, Qc, Region, and Transform.
Move Downscaler from Configuration into Data

* Configuration no longer does the downscaling. This is now done by data
* Data::getValue now only retrives value based on the member parameter,
  not on the type parameter
Don't downscale unnecessarily in Data

When the dataset of the location matches the dataset of the search
dataset, don't attempt to downscale.
Allow default datasets in SelectorAnalog

The 'dataset' option is no longer required. Without it, the default
datasets are used.
Decouple Downscaler from Data

* Downscaler now only operates on a specified Input
* All parameter estimation is removed
* Downscaler is now a component not a processor
Selector create the ensemble

Previously, the Selector creates a vector of fields, which is then later
downscaled by Configuration. Instead, let the Selector create the full
ensemble, with downscaled values.
Allow Selector to pick neighbouring points instead of downscaling

Selector normally finds collection of fields, which are then downscaled.
Also allow the selector to pick neighbouring points, instead of
downscaling. This is done through the option 'numNeighbours'.
Use QC and other data features when using neighbour method in Selector

Selector went straight to Input when getting values at neighbour points.
Selector should still go through data to benefit from QC and other
features.
Fixes bug when getting obs from derived variables

When no observation dataset was specified for a run, values from
forecast datasets were used as observations when a variable was derived.
Merge branch 'Forecast' into mist

Ensemble and deterministic values are now intimately linked to Distribution
Metrics get forecasts from Distribution only

Previously, a the wrapper class Forecast was used to combine
deterministic, ensemble, and distribution. Now only distribution is
used, as it can derive the others.