Importing optional dependencies

This PR is a followup to https://github.com/astropy/astropy/issues/2604.  It adds to the developer documentation about importing optional dependencies at both the function/method level and the module level.  It also removes the re-raising of a custom `ImportError` for most optional dependencies.

I did not change two instances where specific versions of optional packages were required (that seems reasonable to raise a custom `ImportError`).  I also didn't change the custom `ImportError`s in `tests/helper.py`, but I can do that too if desired.