reinstate canonicalizing eras, and clarify invariants
refine mkEra etc.
re-generalize mkEra and mkEra' by adding canonicalizeEra to the IsEraType class