Expose headers in RestRequest

Headers are exposed through a wrapper class so it’s independent of the underlying implementation

closes #4609