Forward port  of CMSSW_7_2_X into CMSSW_7_3_X

As requested by @civanch #5643 is ignored in this forward port.

This abort is annoying: 
- 72X doesn't have it https://github.com/cms-sw/cmssw/blob/CMSSW_7_2_X/Validation/EventGenerator/src/HepMCValidationHelper.cc
- 71X doesn't have it https://github.com/cms-sw/cmssw/blob/CMSSW_7_1_X/Validation/EventGenerator/src/HepMCValidationHelper.cc#L188
Why does the forward port have it?

Just as a minor advice, *DON'T* call abort or exit, throw an exception so that the job can terminate gracefully.