REST api: made it possible to copy the REST headers over from REST requests to the corresponding TransportRequest(s)

Introduced a filtered client used in all REST actions, which delegates all of the operations to the internal Client, but makes sure that the useful headers are properly copied from REST requests to TransportRequest(s) when it comes to executing them. 

Enforced use of the filtered client through `BaseRestHandler`, one instance needed for each REST request.

Replaces #6464 as it provides a better and safer way to copy headers from REST layer to transport layer.
I'd go the other way around
```
for (int i = 0; i < usefulHeaders.length; i++) {
   request.putHeader(userfulHeaders[i], restRequest.header(usefulHeader[i]));
}
```