Fixes a bug in get_format and adds has_format

get_format could fail in weird ways because it would check if 'get_format' was a valid format.
This fix simply ignores the last two entries in the ``__all__`` list ('get_format', and the just added 'has_format')
to prevent this issue. An alternative solution could be to use introspection.

has_format returns a boolean as to whether the passed in format would work or not.
Adds a builtin __format__ method to Units

The format method can accept a format specifier name, and calls that formatter instead.
If the specifier does not correspond to a valid unit formatter, then the generic string version is used,
and the format code applied to that generic string.
A more robust get_format method

get_format would fail when a format didn't exist, as __all__ contained the function get_format itself.
This squashes that bug using inspect.isclass instead of a cludgy slice of __all__
Fixes __format__ check for existing formats

Thanks to @mdbooms suggestion, I realized I fixed a single bug, but
added some poor code for others. This relies on error catching in
__format__ to determine if a specified format exists or not, instead
of a new `has_format` method
Documentation for Unit formatting code specifiers

Units can use format codes in new-style format strings to set the desired formatting builder.
Adding formatting to CHANGES.rst