Update names and extend specialied conversion.
Update names and extend specialied conversion.

This implements a name change that avoids clashes with
the Prelude.

It also adds type synonyms to access the specialised
versions of codes directly. This is sometimes useful, because
there are contexts where we cannot introduce new type variables,
so writing `IsProductType a xs` is not an option, whereas
`IsProductType a (ProductCode a)` may still be.

well-typed/generics-sop