Refactor: remove class_or_instance

Related to #204 and #239, this reimplements all modules without the `class_or_instance` hacks.

The refactoring revealed a slew of hidden bugs, which necessitated implementing a series of hacks to deal with astropy's unstable coordinates API.  The worst of these have to do with formatting and acquiring 'hour' or 'hourangle' parameters from longitudes.

As long as the *reported* astropy version matches the *astropy git version*, these tests are passing locally.