step 1: create the resource boilerplate

NOTE: This class will only return a `Future` and not a
`ListenableFuture`.  The return wont be a direct result
of a single HTTP call.
Add `NamedThreadFactory` for use with `Executor`.

I don't want a library just for this, so its time to roll my own...
again.
Add some more base implementation layout.

+ Create the `executor` in the 'ExportsResourceImpl'
+ Add the `DataExportTask` for submitting to the executor
+ Add the `requestToken` call for getting a request
Add a unit test for data export failing.

+ Add the test
+ Implement `equals` for the `ApiResponse`
Add a status code to the `ApiResponse`.

Since the data exports endpoint uses the status code to
convey information about the current state of the export, we
need access to it.
forgot to add equals to BaseResponse and regen in FailureResponse
add handling of 202 response for in progress exports
refactor the data export task
ApiError can be null if we return no content
add the redeem request call to the ExportsResourceImpl
Add step where we block until we get a download url
Going full monad.

The `DataExportTask` is going to run a pipeline of steps,
any of which could fail.  The pattern is already emerging
with try some method, if a failure return it as the correct
type, otherwise continue to the next step.  This sounds like a
monad, so lets just make it that.

I may regret this.
remove all of the making ApiErrors with strings.
A working version of data exports for accounts.

Implemented the rest of the logic for downloading the file,
gunziping the stream, and decoding the json into a list.  It
could use some more testing, but I think integration tests will
be much more useful.
add the orgs and timesheets exports
Rename the export "Requests" to "Responses"...

... you know, since they are really responses.
add integration tests for the export tasks
Add ability to pass properties to `ApiClient`.

This allows us to pass config options to the `ApiClient`.
Currently this is used to allow us to tweak the polling
interval for the data exports so the integration specs
don't take forever.  In the future, this needs to be cleaned
up to make the config a first class citizen.
Merge pull request #15 from orgsync/exports

Add Data Exports