This is the biggest publicly-visible API change in this PR.  Inheriting from ClientProtocolException allows all API errors to be handled completely in the ToopherAPI `ResponseHandler`