Support headers in Json response

Also reduced the memory footprint of the Json responses by not including the original Json string and the Json4s object when not required.
Could also just be implemented using `toMap` if `toMap` is often expected to be called.