Allow overriding error listeners for all requests

There's an example in the LandingPageActivity class where I override the error response for the login request.
Also adds an APIError custom model for deserializing the errors from the server.

Fix #330 
Fix #304