Try, yet again, to clean up Coopr's formatting.
This file needs to be a symlink.

For the time being, it's necessary to have the exact filename
ReferenceModel.py for PySP, but that's a sore thumb to the rest of the
Temoa naming schema, and doesn't convey what that file is without prior
knowledge.

This will not play well with Windows developers, but they aren't my
primary concern ATM.
Rethink calculation of partial period processes

The overall change is to the assumption that partial-period
processes (those that have an end-of-life mid-period, rather than on a
period boundary) operate strictly until the end of their life.  Instead,
we now conform to the larger assumption that the energy demands and
configuration of use is the same for all years in a period.  The
simplification is that Temoa no longer attempts to stop partial-period
processes from operating at their exact EoL during the period, but to
instead average the amount of energy they can emit over the entire
period.  Temoa calculates this average as the ratio of their operational
years in the period to the period length.

For example, if a period is 8 years long, and a process ceases operation
3 years in, then Temoa may only use 3/8ths of that process' installed
capacity for that period.

temoa_lib:

  Update DemandActivityConstraintIndices, replacing the value demand
  index with the name of the demand in the timeslice.  In practice this
  won't reduce the number of sparse indices, but uses the /name/ of the
  demand now, rather the demand value, and reduces the required
  dimensionality of the indices from 9 to 8.

  Remove concept of CapacityLifetime.  (Indices, in this file.)

  Refactor CapacityFractionalLifetime to FractionalLifeActivityLimit
  concept.

temoa_model:
  Update DemandActivityConstraintIndices per temoa_lib.

  Remove concept of CapacityLifetime.

  Refactor CapacityFractional to FractionalLifeActivityLimit concept.
  It is this constraint that enacts the partial activity assumption
  (3/8ths example from above).

temoa_rules:
  DemandActivityConstraint_rule now follows the CapacityByOutput
  modeling change.  This means that rather than using V_Activity to
  calculate end-use processes output ratios, Temoa uses the sum over
  V_FlowOut.  As this constraint is now /per demand/, it should
  correctly handle cases where a process can meet more than one end-use
  demand.  However, this is yet untested.

  Simlarly, CapacityAvailableByPeriodAndTech now accounts for the new
  assumption for partial-period processes.
Minor performance increase.

For the curious, if we don't calculate the numbers through Python, Pyomo
attempts to "upgrade" them first to Pyomo objects, before finally
reverting them to numbers at a later stage.  Better to do this first so
that Pyomo need not waste any more resources.
Remove remnant of previously incorrect formulation.

The previous formulation was double counting any marginal costs from
partial period processes.  This was a forgotten vestige from that error.
Correct stochastic formulation of objective function.

The previous iteration of the LP objective function had an mistaken
term, from which this formulation was a blind copy.
Make formulation visibly less distinct from temoa_stochastic.py.
Refactor long index names (e.g. A_period to p)