Handle non-200 codes for paged results

When a paged result returns a non-200 result the JSON deserialisation fails and gives no useful error information. This pull request rectifies that by throwing an exception with status code and response body.