Parse job result errors

Parse job results for any errors and return an error, otherwise return parsed JSON.

This will only work with API >= v1.20. In earlier versions it simply will not catch the errors and pass back the JSON response.

This incorporates #5 and #6.