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.
Fix for Python 2.6 for missing functionality in the fractions stdlib module.
Avoid duplicate results in compose
Fixups after rebase
Add Kelvin as a base unit for CGS
Remove debugging print
Move some non-SI units to astrophys.  Change the set of bases in si
and cgs to include some other tertiary units.  Add tests that make
sure that all SI units can convert to CGS and vice verse (with the
exception of units containing Ampere).
Change how Ampere-based units are ignored
add example of defining custom coordinate class
line wrapping and fixed a few minor errors
put full example in its own module
add sgr-example to index
update example to use rotation_matrix