Use NegList instead of ('[] @- ...).
Fix UnicornHorn problem.

The basic problem was that, previously, DefaultLCSU meant that
the quantity was stored as a canonical unit... *any* canonical
unit. So, if there were two canonical units of the same dimension
(which we allow, in order to express two non-convertible units
of the same dimension), we would get bogus answers.

The new solution is to have a new open type family
DefaultUnitOfDim, which defines the representation of a
DefaultLCSU. So, if a user wishes to use a DefaultLCSU, they
must fix the mapping from dims to units by using this type
family. Then, a quantity in the default LCSU has a known
representation. Converting into and out of the default LCSU
makes sure that the target (other) LCSU has known conversions
to/from the global default.

There is a fair amount of other refactoring going on in this
commit, too.
Remove AltOperators.

Earlier libraries of mine offered multiple synonymous names for
operations, allowing the user to choose which was best. This, in
the end, seemed rather cluttered and suboptimal. I find the |+|
notation easier to read (| is bigger than .) and to predict, so
I'd like to keep just that. A user really clamoring for different
syntax can always write it themselves.
Restore fromDefaultLCSU
Restore PhysicalConstants test.
Fix Travel test without AltOperators