Transport: copied over REST headers from RestRequest to TransportRequest

Made sure that the REST headers are copied over from each RestRequest to the related TransportRequest(s).

Introduced new base class (BaseActionRequestRestHandler) for all the REST actions that map to a single TransportRequest (most of them).
Split the existing handleRequest method in two phases: 1) request creation 2) request execution . In between we can automatically copy the headers to the transport request in the base class so we don't have to do it manually all the time.

Also added a utility method to copy the headers in BaseRestHandler, to be used by all the actions that don't extend the newly introduced `BaseActionRequestRestHandler` (e.g. cat api as each request maps to multiple transport requests).

 To make this refactoring easier the following changes have been made as well:
 1) split benchmark actions into different RestAction classes (submit, abort, status)
 2) modified the actions that were doing some validation during transport request creation to throw ActionRequestValidationException instead of directly sending the error through the channel