Send the correct content type for form params
Fail when a request is missing a method
Handle non-JSON responses
Refactor to split apart backend request handling

Having the DSL setters and getters in the same class was going to start
getting confusing.