Initial steps to align SPARQLRepository and HTTPRepository code

1) HttpClient and subclass RemoteRepositoryHttpClient are created, the
RemoteRepositoryHttpClient contains the functionality that is only
applicable for HttpRepositories (e.g. delete repository)
=> further clean-up required

2) SPARQLRepository and HttpRepository now route the evaluation of
TupleQuerys through the HttpClient (including background parsing)

3) Minor changes in dependent projects (e.g. console and remote
repository manager now use the more specific HTTP Client)
In this commit I introduced a common base class for all HTTP queries
(i.e. queries of HttpRepository and SPARQLRepository). This base class
is now already applied to SPARQLTupleQuery and HTTPTupleQuery.

The main difference of SPARQLTupleQuery and HTTPTupleQuery currently is
the handling of bindings: in the SPARQLRepository we replace them into
the queryString using regex, while in the HTTPTupleQuery we use the
Sesame proprietary protocol to pass them as request parameters. The next
steps here are obviously to define what we want to have.

Next steps will be to change also the other query types (graph +
boolean) to route them through the new HTTPClient and use common code.
The actual implementations for BackgroundTupleResult have been moved to
the HTTP client module. To remain backwards compatible, we extend from
new classes and offer the same constructors.
This commit adds the implementation for routing also Graph and Boolean
queries of both the SPARQLRepository and the HttpRepository through the
HTTPClient, i.e. all query requests now share the same code basis.

For tuple and graph queries, the parsing is done in a background thread,
compare the respective BackgroundXXXResult classes.

The code of the Query implementation classes is now aligned so far, that
they are all derived from the AbstractHttpQuery. The main difference
between the HttpRepository and SPARQLRepository query implementation is
still that the SPARQLRepository versions apply some string modifications
(i.e. the bindings are inserted into the query), while the
HTTPRepository sends the bindings as GET parameters. See QueryStringUtil
for some details.

Some of the open tasks are marked as TODO in the code, e.g. there was
some handling of the baseURI for the SPARQL query version, which is not
yet dealt with in the new implementation. Except for the functionality
should have been moved to the respective HTTPClient method.

The most important advantage of the new unified implementation, is that
we do not have to take care for HTTP connections outside the HTTPClient.

Next steps and open tasks:

1) Route update queries through the HTTP Client as well
2) Remove apache http client from SPARQL repository
3) Further align HTTPRepository and SPARQLRepository, in particular make
HTTPRepository a subclass of SPARQLRepository (same for the connections
if possible)
4) Cosmetic cleanup and refactoring (e.g. in the query implementations
we always have the same kind of try catch block, which could be moved
into the HTTPClient itself (to return an instance of
QueryEvaluationException directly)
This commit routes all UPDATE queries of the HttpRepository and
the SPARQLRepository through the HTTP client. For the SPARQLRepository
it is required to set the updateEndpointURL appropriately, otherwise
illegal argument exceptions are thrown. For usability reasons we should
consider to implement more robust behavior in the next cleanup steps.

SPARQLOperation and SPARQLQuery are now deprecated and can potentially
be deleted, if they are not considered part of the public interface.
This commit removes legacy HTTP client from the SPARQLRepository as it
is replaced by the shared HTTPClient component of Sesame.
SES-1677 minor fix in getter for additional HTTP headers
SES-1677 minor fix in getter for additional HTTP headers
Merge branch 'ses-1677' of bitbucket.org:openrdf/sesame into ses-1677
Implement suggestions from comments of pull request: 

- rename RemoteRepositoryHTTPClient to SesameHTTPClient
- reuse getQueryURL for repository URL
SES-1085 started work on implementing updates in SPARQLRepository. Added
compliance test, several tests still fail, not yet ready for merge.
SES-1085 use proper lexical value encoding for inlining values
SES-1085 remove on basic graph patterns implemented
SES-1085 fix in compliance test, replacing default SeRQL query with
SPARQL equivalent.
SES-1085 minor fix in inlining of bindings for query literals.
SES-1677 minor fix in binding handling in QueryStringUtil - original
variable is left in SELECT as an alias (to make sure it can still be
retrieved from the result).
SES-1085 SES-1677 various fixes, all tests greenline now (several
ignored due to transaction isolation issues or named graph issues)
Merge remote-tracking branch 'origin/master' into ses-1677

Conflicts:
	testsuites/store/src/main/java/org/openrdf/repository/RepositoryConnectionTest.java
SES-1677 adapted constructors: update endpoint URL may not be null.
SES-1677 adapted configuration and factory for SPARQLRepository to deal
with optional update endpoint url.