Streamlining things all around.

- Allow plurals to be a method on the constructed object.
- Streamlined tests to be done on the final class
- Allow optional attributes to control omitted fields
Documentation in the class and function

- Also renamed the inner function that is returned.
Adding some tests for the factory

- Learned that the higher_omissive value isn't producing what might be
  implied.  Replaced with more explicit meaning.
- Documented the factory function and class.
Include imperial units

- A future idea: it would be nice if there is an easier way to omit some
  intermediate units.  For example yards can be omitted without having
  to construct a new class using a definition without yards.
Drop the somewhat needless prefix.
Testing the unit group

- Also enable a better way of constructing it - using keywords.
This is a _much_ better definition method.
Change the construction process, again.

- Made base unit explicit as it is always implied to have a value of 1,
  and requiring that to be explicitly defined is somewhat redundant.
- The UnitGroup no longer sets attributes to itself, so no more private
  values.  Also allows much more improvement opportunities.
- Provide a new class that maintains the existing function.
Allow the specification of irregular units.

- It's a matter of cascading the remainder from the higher unit down to
  the current unit as the current working value.
- Current way is probably not ideal, but it does work.
Allowing respecification of unit definitions.