Cluster summary rewrite

The ClusterSummary and ClusterSummaryProducer classes were updated to improve performance, as documented here:

https://its.cern.ch/jira/browse/CMSTRACK-51
(https://indico.cern.ch/event/322710/session/5/contribution/2/material/slides/1.pdf)
Automatically ported from CMSSW_7_2_X #5136
- a return of  NDEFAULTENUMS for nonexistent value is not obvious, intuitively I'd expect something with an "invalid" in the name
- the implementation should be changed: either define a static const  map between the strings and the CMSTracker enums or a vector of pairs of "string, enum"; could also loop over the selections vector. Current implementation creates a selections vector, makes a copy of it, then checks for a value inside of it, all in a loop over NDEFAULTENUMS