Rewrite/Refactor of PFBlockAlgo

This pull request contains the implementation of a modularized version of PFBlockAlgo and the branch is based on CMSSW_7_1_X_2014-04-24-1400.
The block elements and links between elements in a block have been confirmed to be exactly the same as those from the original PFBlockAlgo. However, the order of elements within a block has changed.

This exposed some element order dependencies (minor bugs) within downstream PF-reconstructions (PFAlgo/PFEGammaAlgo) that result is slight regressions, including the creation of new PFCandidates, with respect the reconstruction using the original implementation of PFBlockAlgo.
There is a 20-30% speed up in PFBlockAlgo, depending on PU scenario.

I was able to reproduce similar regressions in the old PFBlockAlgo by forcing arbitrary element sorting.

Testing in wf25202.0, 710_pre5, I observed minor jitter in the jet/MET, charged hadron, neutral hadron, and photon energy, but there was no trend in migrations. I did not observe any changes in PFEGamma objects once the bugfix from #3348 was applied to the base release, but small changes at lower rate than the previously described jitter can be expected.

This PR will require additional commits later from Martin to reflect updates in confdb for HLT.

Order of magnitude rate guesses for regressions are:
O(1-2 events in 100 see some jitter)
O(1 new PFCandidate or candidate change per few thousand PFCandidates)