Add map Attribute type
May be useful to be able to store map-like objects in attributes. In NuHepMC we currently use compound keys to achieve this, e.g.
obj.add_attribute(HepMC3::IntAttribute(5), "mymap[1]")
obj.add_attribute(HepMC3::IntAttribute(10), "mymap[2]")
stores something equivalent to `std::map<int,int> mymap{ {1, 5}, {2, 10} };`.
Would it be better to have a templated attribute type that can store the entire map within the value like:
obj.add_attribute(HepMC3::MapAttribute<HepMC3::IntAttribute,HepMC3::IntAttribute>({1, 5}, {2, 10}), "mymap");