Move LOLE calculation to the Merit gem
Capacity attributes are required for the LOLE calculation
flatten_compact should cast Enumerables to Array
Set up a Merit Order for the present graph

The present graph merit order IS NOT run, however load and curve data is
set so that LOLE and peak demand queries can be used.

Ref quintel/merit#126
Ref quintel/etsource#895
Use LoadProfile cache in development
Fix some broken tests which are older than our sun
Merge pull request #726 from quintel/lole

Move LOLE calculation to the Merit gem
Support for scaling areas

Adds support for reducing the size of an area proportionally, according
to one area attribute. For example, the Netherlands has 7.3M residences;
you may wish to scale down the area to only 50,000 residences, to
simulate a mid-sized city.

All attributes within the area are reduced in proportion to the main
attribute, but edge shares and slot conversions are preserved. Input
min, max, and default values are also adjusted as appropriate.

Ref #712
Scenarios based on another retain the scaling

Ensures that creating a new scenario based on a preset, or another
scenario, copy the ScenarioScaling values as necessary.
Send scaling information with the scenario JSON
Don't scale full_load_hours

Scaling the capacity of plants causes the total number of plants to
remain the same as in a full-size scenario, resulting in extreme costs.
Remove full_load_hours scaling spec
Temporarily remove failing spec
Scale time curve values

Closes #728
Tests may have no time curves :/
Don't scale inputs whose unit is "m^2K/W"
Add class-based plugins for the graph

The MeritOrderInjector has been removed, and replaced with two plugins:
SimpleMeritOrder and MeritOrder. The former provides useful
merit-related helpers without requiring a full calculation of the order
(such as is always required on the present graph, or on the future graph
with the user has disabled the merit order calculation).

Other graph plugins, such as FCE, resettable slots, etc, have been
rewritten to be class-based.

A new Lifecycle class handles these plugins, and triggering their
callbacks at various points in the graph calculation.
Remove empty Ruby file