Adding statet to generic
Moving to a StateT

- This helps with a lot of things, most of the boiler plate falls away
Adding path
Starting to implement a better writer
More tweaking
Refactored to make the code easier to read
String now conforms to the build
Removing query type, as it's just not needed

- Also added the build to query
Headers now implemented better
Added helper methods
Adding method build method
Adding content encoder build
Moving stuff around
Merge pull request #1 from SimonRichardson/state-transformer

State transformer