Added API Test Cases

1. Added test cases for ApiInterface's applicable functions. This includes all functions we don't require network connection to emulate.
2. Added a TestAsyncHttpClient class, for use with the ApiInterface tests. Emulates network communication.
3. Added a couple onFailure calls to ApiInterface, where exceptions occurred. Before, they just continued and called onSuccess.