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.
Add windowLength to SelectorDefault

The default selector can now include all fields within a certain time
window. This acts like a time-smoothing mechanism.
Improves graphics products. Adds spreadSkill verification.

Improvements to graphics
* Change the x-axis to UTC for CdfPlots.
* Improve the grid lines
* Add spread-skill plot
* Allow specification of offset
	modified:   graphics/meteo/Plot.py
	modified:   graphics/meteo/File.py
	modified:   graphics/meteo/verif.py

Conflicts:

	graphics/meteo/Plot.py
Allow system to handle datasets with multiple initialization times.

Previously, different initialization times were possible by
creating separate datasets with different offsets. This commit
adds inits to Input, and allows outputs to be written for
different inits.

Read init from command line
	modified:   src/Drivers/Comps.cpp

Allow Input datasets to have several initializations
* Base class handles which init to pull data from.
	modified:   src/Inputs/Input.cpp
	modified:   src/Inputs/Input.h

Compute the proper time of day based on offset and init
	modified:   src/Inputs/Sinusoidal.cpp

Allow output for multiple inits to be written
	modified:   src/Outputs/Netcdf.cpp
	modified:   src/Outputs/Netcdf.h
	modified:   src/Outputs/Output.h
	modified:   src/Outputs/Verif.cpp
	modified:   src/Outputs/Verif.h

Create a separate parameterfile for every init
	modified:   src/ParameterIos/Netcdf.cpp
	modified:   src/ParameterIos/Netcdf.h
	modified:   src/Key.cpp
	modified:   src/Key.h

Use the init time when selecting which time to pull slices from
	modified:   src/Selectors/Clim.cpp
	modified:   src/Selectors/Persistence.cpp

Analog method not tested for non-zero inits
	modified:   src/Selectors/Analog.cpp

Read Init from file and properly convert offsets to times
   modified:   graphics/meteo/File.py
Improves how the commandline arguments to COMPS are recognized

Previously the init could only be specified if both a start and end date
were specified on the command line. This commit requires a date to have
8 digits.
Add Updater component
Use delete[] instead of delete for arrays

In some cases delete was used instead of delete[] when freeing arrays
allocated using new[].
Adds a fixed rounding threshold to CorrectorRound

* The threshold for determining when to round up or down is estimated
  adaptively. This commit adds the option to set a fixed threshold.
* Add code that allows values to be rounded up.
Improves documentation of PolynomialRegression
Optimizes caching in InputFlat for missing files

When a file is missing, the values for the entire file should be set
as missing in the cache.
Adding init time to Observations
Adding getUnits to File.py
Allow update parameters using neighbouring (in time) obs

Some stations do not have observations available at all offsets. This
means that for some offsets parameters are estimated, and for others
default parameters are used. This commit allows observations from
neighbouring offsets to be used when updating parameters.