Fix typo `cooefficients` vs `coefficients`
Move `coefficients_to_xdo` etc out of class

They are helper functions, not class methods. Simplify the class.
Change OO relationship of Constituents

Previously:

   BaseConstituent
          |
 CompoundConstituent

But `CompoundConstituent` does *not* have an "is-a" relationship with
BaseConstituent (although it has common features).

This commit renames `BaseConstituent` to `Constituent` and introduces a
new `BaseConstituent` which provides any common functionality, and
dictates what functionality must be provided by the subclass.

      BaseConstituent  (new)
        |       |
Constituent   CompoundConstituent
Split constituent.py into a package

Split out BaseConstituent, Constituent and CompoundConstituent as they
are functionality quite different.

Move the actual constituent defintions into a new file
`constituent_factory` which will soon have factory methods for creating
a constituent [set] from a name.