More routines migrated to HEPMC3
In this MR:
- Use more auto for complicated types and for cases when the result is either HepMC2 or 3.
- Use some ifdefs, mainly in the output where HepMC3 uses stl containers and HepMC2 own functions like
particles_size()
Edited by Andrii Verbytskyi