Refactor the JSOC client into three steps:

* Query, return a list of records
* Stage data using request_data
* Download data using get_request

The last two are now contained in get() which makes the API much more like that
of the other clients such as VSO.

Also, massive doumentation improvements and include Time in the jsoc.attrs.
More documentation improvements.
Further improvements and units in Wave
Workon writing tests for improved JSOC module.
Wavelength based queries are broken, cov increasing.
Some more tests
Tests all passing, coverage increasing.
100% attr coverage
more tests
small test tweaks
more tests, now fails nicely if not complete query
fix test
Make corrections as suggested by @derdon
Merge branch 'jsoc_improvements' of github.com:Cadair/sunpy into jsoc_improvements
fix tests.

it seems that `if not segment` and `if segment != ''` do not do the same
thing.
CHANGELOG update [ci skip]
Merge remote-tracking branch 'upstream/master' into jsoc_improvements
Merge pull request #1194 from Cadair/jsoc_improvements

[Review]: Change JSOCClient API to match that of the Unified Downloader / VSO Client