Suggestion for revamp of RetrofitError

After having troubles finding the reason for a `RetrofitError`, I reworked `RetrofitError` and its API for myself. Might be of interest regarding #284. Summary:

* Hierarchy of errors added (like `RetrofitHttpError` and so on), so it's always clear what type of error it is.
* More or less meaningful message to every `RetrofitError` added (like "Request to http://example.org failed; response  code is 406 Bad Request.").
* Unneeded methods deprecated (it does not make sense to have a `getBody()` in case of a network error).

Although the change is quiet big, it should conform to the old API (I wrote the tests against the old API) and not break any existing code.