HCAL reco speed up by David L.

This is a copy from https://github.com/davidlange6/cmssw/tree/hcal_speedups_141121 (https://github.com/davidlange6/cmssw/commit/477c4b2e1a9a69ddb59abb94dd0aeb42f1fbae18). For now the purpose of the PR is just to make the code available and ease the discussion. I am to comment more below but overall the code is a bit over 20% faster with minor regressions.