API: Set an error if status code isn't 2xx
Clean up API error handling

This ensures that all instances of API event listeners correctly handle
API errors. Also prepares for a more in depth update of error messages
and handling based on the status code.
API: Include APICall in APIEvent

Now the event has the original APICall so the error dialog factory in
APIService doesn't need to have a parameter for the APICall to retry the
request with! (Coming Soon™)
Reuse APICall from APIEvent when making a dialog
Specify error messages in ErrorType

Now the messages are defined in APIError.ErrorType and are used in error
dialogs if they aren't overridden.
APIError.ErrorType: Add try again flag
APIError.ErrorType: Add finish activity flag
Change ErrorType to Type

It's already scoped in APIError...
API: Only accept Activities for error dialogs

Since we're casting it to an Activity and calling finish() on it...
Merge branch 'api-error-handling'