Hbhe channel grouping

Arbitrary persistent grouping of Hcal channels. Will be needed in the future to implement lookup tables from channel id to channel pulse shapes.

The lookup will be two-staged. In the first stage, the channel id will be mapped into a linear channel number ( computational complexity O(log(N)) ). In the second stage the linear channel number will be mapped into its group number (e.g., pulse shape number). This is O(1). The two-stage lookup should work better than the direct one because we will likely have several O(1) operations (for different collections of objects). All of these can use the same linear channel number which has to be looked up only once.

Maps are extremely expensive to read/write and are very memory hungry. Please consider changing to a ```std::vector<std::pair<HBHEChannelId,unsigned int>>``` where you have presorted the vector.