split the API out a little

You'll now need to call a terminal method to get the response data
(response, or decode currently). This is so we aren't rail-roaded into
getting the response-as-a-perltruct when calling as_json.
Add a warning about API breakage