Baseline of Common Isolation & ID Framework 70X Edition

@vadler @monttj

This is meant for this week's analysis release.

This is the baseline version of a common framework for calculating isolation sums and processing ID cutflows.
Presently only an example for electrons is given for both ID and isolation.

The base classes of the framework for both ID and Iso are able to take inputs from Electron/Photon/Tau/Muon analysis objects (both PAT and standard reco) and can deal with the packed PF Candidates of miniAOD by using RefToBase. 

The configuration of the IDs is done through python, defining a human-readable cutflow that is then turned into functions that are kept track of centrally in POG-managed packages. Python workflows are versioned and kept track of with MD5-sums + a human readable name. The version tracking needs significant improvement. If someone can help it would be great! I've taken some care to make sure that the ID functions can be configured and used within FWLite, I am working on making this functionality available in FWLite-python so that it can be used many levels of the analysis chain.

This framework needs to have significant content filled from more than electrons in before it becomes viable, but it's a start.

getByToken is not available from edm::EventBase, this access pattern is needed to work in FWLite using the same code. Since when running in full framework mode the tokens are registered via consumes, there is no problem with multithreading.