Make QueryResult easier to use.

QueryResult makes it easier to access data. Now you can just use get(i)
directly on the object. You can also pass a class and it'll deserialize
the JSON result using the local copy of GSON.
Remove unused REST Response object.
Add method to download query results to file.

Adding this method also required a whole bunch of other cruft, including
the creation of a Response class to use in Rest to return results.
Move GSON-stuff out to test.

We only use it in testing. For anyone doing something non-trivial,
that our internal copy of GSON can't do, they'll probably want to create
their own ToJson/FromJson anyways.
Fix javadoc warnings.
Slight refactor and javadoc clean-up.
Add overview page for javadocs.