Adds "compose" functionality to units -- it's the converse of
"decompose" and tries to reduce the number of components in a
CompositeUnit.

The Quantity.si and Quantity.cgs methods can then much more easily be
implemented in terms of this functionality.

Also addresses #576 be providing a way for the user to decompose into
a particular system.

Other changes along the way:

  - PEP8-ify quantity.py

  - Privatize the "_simplify" member on units, since it's confusing in
    relation to "compose" and was never meant to be public anyway.
compose no longer requires that it makes progress toward reducing the complexity of the unit as it works.  This allows expressions to me composed into more complex expressions when the set of desired units requires it.  (Point raised by @astrofrog in the PR).  This is a slightly back-to-the-drawing-board approach for compose.
Minor doc fixes
Complete the set of si bases
Allow for factoring by fractional powers.  Also sort results in a way that is most useful (simplest results first).
Rename some documentation files.
Fixups after a rather hairy rebase.
Steradian should not be a unit base.