Return null as error body when response is absent

Was throwing an NPE for lack of null check on response before trying to
access the given response body.

Fixes #488
Merge pull request #491 from desseim/master

Return null as error body when response is absent
Add docs about null responses.
Remove deprecated functionality that has exceeded its grace period.
Merge pull request #492 from square/jw/deprecated

Remove deprecated functionality that has exceeded its grace period.
Move method init into try/catch so exceptions are properly propagated.
Merge pull request #494 from square/jw/init-in-try-catch

Move method init into try/catch so exceptions are properly propagated.
Update documentation for handling of @Field and @Part values.
Merge pull request #495 from square/jw/document-field

Update documentation for handling of @Field and @Part values.
Delegate to existing deserialization method.
Specify a useful message when creating a RetrofitError.
Merge pull request #496 from square/jw/exception-messages

Specify a useful message when creating a RetrofitError.
Change mock async behavior to use the supplied Callback instance directly.

This allows service APIs to use Callback subtypes and mock behavior together. Previously this would have thrown an exception due to the internal assumption that all asynchronous APIs were declared using Callback directly.
Merge pull request #493 from square/jw/mock-async-sleep-before-callback

Change mock async behavior to use the supplied Callback instance directly.
If OkHttp is present, require 1.6.0 or better.
Merge pull request #505 from square/jwilson_0527_okhttp_16

If OkHttp is present, require 1.6.0 or better.
Add simple documentation to each converter.
Merge pull request #508 from square/jw/converter-docs

Add simple documentation to each converter.
Apply the interceptor tape at the time of subscription.

Previously the tape would only be applied when the Observable itself was created. This is counter to what you want since the Observable is a representation of an API call but not an actual invocation.

Since the tape is now applied at the time of subscription, the Observable can be long-lived while still behaving like a synchronous API call. Additionally, consumers of the Observable API that immediately called subscribe receive the same interceptor behavior since it's on the same thread.
Merge pull request #509 from square/jw/apply-interceptor-tape-on-subscribe

Apply the interceptor tape at the time of subscription.