machine types, constraints and classes

We now explore the strategy of defining machine constraints using
ConstraintKinds.  The features module has been renamed to
Aim/Machine.hs
removed -Werror