NEHM unionWith was not using the passed f correctly

We were calling @HM.union@ rather than @HM.unionWith f@ on the underlying
HashMaps
Canonicalise toList of NEHM/NES

Now we first convert to a Hash(Map/Set) and *then* to a list, to obtain a
canonical representation.
Indentation change and remove spurious blank lines
Add subset construction tests