New exceptions

If the request fails, and the api returns an error, the library will return a `InvalidApiRequestException` exception that contains the `ResponseStatusCode`, `HttpResponsePhrase`, and an array of errors the API returned. Addresses the issue raised in #83.

What do you think of this method of addressing the issue?