Skycoord to accept more formats

This is just a dump of the skycoord related commits removed from #2846. This should not be merged as is. First the right place/function need to be found for it as it's representation specific.  Added features:

* acceptance of space separated <6 value format
* support for JHHMMSS.ss+DDMMSS.s format
Just `str`, not a `list of str`.  In the internal call the input will always be a single string because of the `if isinstance(coord, six.string_types):` above.  Allowing a list of strings is a potentially confusing because you might expect being able to pass of list of 20 coordinate strings.