Tools for HCAL clustering with time and depths   in PF 

Adding code that is currently deactivated in the release to have complete functionality in Calorimeter clustering choices.
Additions:
-Rec Hit Producers to perform all PF hit reconstrcution from hits and not use CaloTowers
-New HCAL 3D clustering with depths 
-New PF HCAL Rec hit creator utilizing the 2 max samples 
-Generalization of the 3D clustering with time code to also run on HCAL
-Customization functions    to make possible the test of different reconstruction SCENARIA
for both ECAL/HCAL
 

Possible to collapse the pset initializations info a for loop, and keep the data about timing in a more compact (and easier to understand/maintain) structure.
Something like:
```python
configInfos = [(1.0,0.0,1.0,False,-30.0,30.0), #HB for 0-1 GeV
               (1.0,0.0,1.0,True,-30.0,30.0)]  #HE for 0-1 GeV, etc....
```
and then later:
```python
for config in configInfos:
     particleFlowClusterHBHETimeSelected.cuts.append(
          cms.PSet(depth=cms.double(config[0]),
                   minEnergy=cms.double(config[1]),
                   maxEnergy=cms.double(config[2]),
                   endcap=cms.bool(config[3]),
                   minTime=cms.double(config[4]),
                   maxTime=cms.double(config[5])
    )
)
```