Allow for string input of representation
Improve error message for bad representation
Generalize coord init to work for any representation
Refactor coord initialization and _get_represenation_attrs to simplify logic
Update SkyCoord docstring
Update coordinates getting started with section on representations
Remove FK4NoETerms from the list of frames in test_round_tripping()

From the perspective of SkyCoord interface and round-trip testing, FK4 and
FK4NoETerms are identical.  The FK4NoETerms frame is validated elsewhere.  This
reduces test time by almost a factor of 2 (and this is a big component of
overall coordinates test time).
Remove orphaned BaseRepresentation.attr_dict class method
Update representations.rst documentation
Add representation_names to builtin dir behavior
Change SkyCoord attribute access error msg to use class name not class
Add more representation narrative docs
Fix the sgr-example to work with new dynamic representations

Note - the sgr-example.py code has a couple of problems that required
changing the output of the (skipped) doctest:

- Makes inputs into atleast_1d without remembering if they are scalar
  and changing back, so coords always end up as arrays.
- Always explicitly supplies a distance when creating coords, so that
  the resultant spherical representation always shows a distance even
  if it wasn't supplied (unlike the builtin frames).

I didn't fix these issues.
Return empty dict for repr_units,names if self.representation is None
Change _representation to default_representation
Implement @eteq suggestions to make attributes public
Fix coordinates documentation warnings
Minor cleanup to get docs matching current code for coordinates
Update rotation_matrix to reduce rounding error and correct sign convention on for arbitrary axis
Add explicit rotation_matrix tests