Submit raw data on internal request + custom headers

 - Addresses #227 by adding functionality to submit raw data with internal requests.
 - Also added ability to set custom headers within internal requests, required for submitting raw JSON data
 - Shortfalls: Request::json does get populated but overwritten/removed during the request cycle, I haven't yet figured out why (but Input still returns the data)

[Let me know if this is something you're happy to merge in, and if so i'll add the tests]