Feature/support zero storage requesters

Adds features needed to support requesters who do not want to store any Toopher-specific data.

Feature the first: **Explicit Exception Classes for API Client Errors**

* `RequestError` now inherits from `ClientProtocolException`, not `Exception`.  This allows it to be bubbled up from the JSON Response handler
* Adds `ToopherClientError` class that wraps all API 4xx errors to expose the full error message and Toopher error code, with three specific subclasses
	* `ToopherUnknownUserError`
	* `ToopherUnknownTerminalError`
	* `ToopherUserDisabledError`