Made SimpleJetCorrector truely const correct

Previously SImpleJetCorrector was changing the values held by the
TFormula it owned. This was a problem for threading since this class
is indirectly accessible from the EventSetup. Now the code modifies
a copy of the TFormula.
The member data were reordered to avoid unnecessary padding by the
compiler.
Refactored FactorizedJetCorrector

Refactored the internals of FactorizedJetCorrector into two seperate
classes, one which does the calculation and another which olds the
list of variable values. This was needed since FactorizedJetCorrector
was being used by JetCorrectors in the EventSetup and the changing of member
data is a threading problem. Now the JetCorrectors only hold onto the
FactorizedJetCorrectorCalculator and create the temporary variable value
holders as needed.
Fixed thread-safety problems with JetCorrectors

Previously the JetCorrectors used the thread-unsafe class
FactorizedJetCorrector to do the work. After refactoring the JetCorrectors
now use the thread-safe class FactorizedJetCorrectorCalculator and its
helper VariableValues class. The functionality is identical but the
temporary variables now only exist on the stack.
Merge pull request #3092 from Dr15Jones/makeJetCorrectorThreadSafe

JetCorrector -- Fixed thread-safety problems with JetCorrectors