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
Adding units.format.FORMATS

It is a list of formats that can be found by get_format()
Changed documentation link to a hardlink.
Changed the document title of units/format.rst
Removed the paragraph on Unit.to_string
Language tweaks in units format documentation
Better grammar for CHANGES.rst units
Tests for new-style units formatting
[DEV] Quantity formatting shortcut for values.
Docs for new-style Quantity string formatting
Added Quantity format strings to CHANGES.rst
Added a reference for astropy-units-format
Fixed a typo in CHANGES.rst
Improvements to Quantity format documentation.
Quantity formatting unit tests.