Allow non-JSON requests to be made, and a bug fix

By using `{ json : false }` as the options object, the response can be returned as plain text instead of as JSON. Still defaults to `{ json : true }` so the interface is not broken for existing uses.

I also fixed a bug where the text "null" was being prepended to any response.