Changes HttpFetcher to no longer reuse request objects by default.

Removes special case for BAD_REQUEST.
Adds RequestProvider for implementations to decide what request object to use.
Refactors Http Fetching utils and abstract stage.

Removes HttpClient-specific tests from AbstractHttpFetchingProcessStage.
Adds more tests to HttpFetcher.
Replaces stage-specific document manipulation methods with LocalDocument calls.
Adds simple implementation of a Http Fetching stage.
Removes unused GSON dependency