Move run-related settings out of Data

Create a run class that stores run-related settings, such as which configurations, outputs,
metrics to produce prodicts for.
	new file:   Run.cpp
	new file:   Run.h
	modified:   Configurations/Configuration.cpp
	modified:   Configurations/Configuration.h
	modified:   Configurations/Default.cpp
	modified:   Configurations/Default.h
	modified:   Drivers/Comps.cpp
	modified:   Drivers/Comps.h
Don't store run related settings in Data
	modified:   Data.cpp
	modified:   Data.h
	modified:   Regions/Region.cpp

Create a class to store all loaded inputs. The data objects initializes with this so that all
loaded inputs can be shared,to save memory.
	new file:   InputContainer.cpp
	new file:   InputContainer.h

Input no longer takes Data as input
	modified:   Inputs/Flat.cpp
	modified:   Inputs/Flat.h
	modified:   Inputs/FlatObs.cpp
	modified:   Inputs/FlatObs.h
	modified:   Inputs/Grib.cpp
	modified:   Inputs/Grib.h
	modified:   Inputs/Input.cpp
	modified:   Inputs/Input.h
	modified:   Inputs/Lorenz63.cpp
	modified:   Inputs/Lorenz63.h
	modified:   Inputs/Netcdf.cpp
	modified:   Inputs/Netcdf.h
	modified:   Inputs/RdaNetcdf.cpp
	modified:   Inputs/RdaNetcdf.h
	modified:   Inputs/Sinusoidal.cpp
	modified:   Inputs/Sinusoidal.h
	modified:   Tools/generateSchemeFactories.csh

Adding functions to add new options, after the object has been constructed
	modified:   Options.cpp
	modified:   Options.h

Remove unnecessary functions
	modified:   ParameterIos/ParameterIo.cpp
	modified:   ParameterIos/ParameterIo.h
Implement pooling of parameters across offsets

Create time-bins to pool parameters. To retrieve a parameter, pull from the nearest bin.
When updating parameters, compute parameters for all offsets inside each bin.
	modified:   src/Regions/Region.cpp
	modified:   src/Regions/Region.h
	modified:   src/Configurations/Configuration.cpp
	modified:   src/Configurations/Configuration.h
	modified:   src/Configurations/Default.cpp

Fix bugs where offsets were declared as ints, not floats.
	modified:   src/Key.h
	modified:   src/ParameterIos/Netcdf.cpp

Use a configuration's 'region' option if set
	modified:   src/Run.cpp
Use vector dates/offsets when updating Selector parameters
Update default runs namelists to new input convention. Warn users.

Runs namelists should use 'inputs' instead of 'inputsF', and 'inputsO'.
Warn users when no inputs are provided in the runs namelist.
Clean up ParameterIo's interface for inheriting classes

The 'write' function now takes the parameters as input, instead of the
method relying on parameters as a member attribute.
Remove redundant methods in Obs and Value
Fix deleting some inputs twice in InputContainer

Inputs that are deleted twice, because those loaded using a tag are
added to two containers, each of which have its elements deleted.
Allow a run to not specify any observation datasets

This means that parameters will not be updated. Calls to
Data::getObsInput() must check that the returned input is not NULL.
Merge the new data structure into the development branch

The newData branch creates separate Data objects for each configuration,
such that each configuration can specify a downscaler. In addition, run
information is stored in a run object and not in Data.

Conflicts:
	src/Configurations/Default.cpp
	src/Data.cpp
	src/Data.h
	src/Entity.h
	src/Obs.cpp
	src/ParameterIos/Netcdf.cpp
	src/Selectors/Persistence.cpp
Remove DownscalerPerformance
Allow Cache with non-vector values

The templated Cache class required the class for values to have a
.size() method defined. This prevented values to be ints or floats.
Added specialized functions to fix this. This simplifies some caches
that had to use vectors with one item instead.
Fix problem with storing Inputs in InputContainer

InputContainer did not properly cache the Inputs it created, causing
duplicates to be created.
Simplify Parameters class