Allow for custom datatype names in votable

This should allow end users to workaround VOTable files that contain
invalid datatypes.

Also adds two datatypes seen in Vizier tables: "unsignedInt" and "unsignedShort".
Update docs about datatype mappings.
Add changes entry.
Fix #2791.

ra_dec_order crashes with multiple array input to *2world methods.
Raise warning rather than exception on unsupported FITS unit.
Merge pull request #2791 from mdboom/wcs/ra_dec_ordering

WCS ra_dec_order not working
Merge pull request #2797 from mdboom/table/warn-unknown-fits-unit

Table.write to FITS should maybe not crash if a unit is not valid in FITS
Fix link to h5py package in docs/doctrings

Old url was http://alfven.org/wp/hdf5-for-python, new is http://h5py.org
Fix line lengths for PEP8
Overwrite individual tables in HDF5 file

Add the ability to overwrite a single table within an HDF5 file without
affecting other files if user passes both `append=True` and
`overwrite=True` to the `Table.write()` method. (Using `overwrite=True`
alone deletes the HDF5 file, and any other datasets inside it, while
`append=True` alone can only add new datasets to an HDF5 file.)
Adds `test_read_write_existing_append_overwrite` function to test this
combination of arguments to `write()`.

Closes #2624
Document append+overwrite arg combo for HDF5

See #2624
Don't rewrite the config file on every import.
Add docs for issue #2762
Add check for np.ma.nomask in NDData mask setter.

Closes #2784
Added changelog entry for #2784
Add regression test for #2784
Merge pull request #2796 from AnthonyHorton/bugfix-for-issue-2784

Add check for np.ma.nomask in NDData mask setter
Fixed support for staticmethods in deprecated() and fixed an issue where the full deprecation message was not being displayed
Added changelog entry
Refractor use of __init__ in io.ascii Readers

In the Readers, ther eare two ways how parameters are set.
Either they are defined in the header or data objects like this:

Method I:

class MyHeader(BaseHeader):
    comment = r'\ #'

of in the __init__ of the Reader, such as this:

Method II:
class Reader(BaseREader):
	def __init__(self):
		self.header.comment = r'\ #'

The first method makes it easy to derive from that class, the second method
makes it hard. This PR aims to transfer has much as possible from the
second method to the first. However, sometimes that's not possible
because a values are only given at runtime. Again, there is two ways for that:
1) in the __init__ such as
def __init__(self, definition='ignore', DBMS=False):

2) using the ui, such as
table.read(delimiter='%')

Back to Method I vs II:
In a class hirachy, once one class sets a value in __init__
all derived classes have to do the same, because their class attributes
will get overridden once __init__ is run.

This PR transfers a set of things from method II to I.

Does this break the API?
------------------------
If somebody derived from class in the way we used to do
(Method II was used almost exclusively) in the package: No.
If someone used Method I in class where io.ascii uses Method I: No change,
since the derived method sets the class attribute.

If someone set a class attribute, but that did not take effect because it was
overridden in one of io.ascii's __init__ methods: Yes. However, in that case
that's a bug that we fix and not an API change. If a derived class
specifically sets a value, then that value should NOT be overridden.

Is this complete?
-----------------
No, because in some cases Method I is not practical or requires the
definition or a new Data class. I think we should still do that, but I want
to run it through Travis first (tests pass locally).

Also, I have changed calls to Baseclass.__init__ -> super(Class, self).__init__
Strictly speaking this change is independent of the main goal of this PR,
but I decided to follow the astropy coding guidelines here because
(a) I had to touch all the __init__ calls anyway
(b) I have changed one or two Base classes. Using super() I don't have to
care, while I would have to be more careful with direct calls to
BaseCalss.__init__(self).

This is a partial answer to #2810