Update GSON to 2.3
Merge pull request #605 from timehop/update-gson-dependency

Update GSON to 2.3
Use charset to properly adhere to Javadoc contract.
Merge pull request #610 from square/jw/gson-charset

Use charset to properly adhere to Javadoc contract.
Include body mime type on AppEngine client requests.
Account for response URL being absent.

According to the documentation[1], this occurs when the response URL is unchanged from the request URL.

[1]: https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/urlfetch/HTTPResponse#getFinalUrl()
Merge pull request #616 from square/jw/fetch-client-content-type

Include body mime type on AppEngine client requests.
Merge pull request #617 from square/jw/fetch-client-null-url

Account for response URL being absent.
Add transfer encoding to multipart parts.

Also:

 * Reject multiple annotations on method parameters.
 * Pre-size StringBuilder instances to their likely size.
Merge pull request #612 from square/jw/content-transfer-encoding

Add transfer encoding to multipart parts.
Migrate most behavior tests to be whitebox(ish).

Eliminate the blackbox inspection into RestMethodInfo and direct invocation of RequestBuilder by combining the two.
Merge pull request #619 from square/jw/whiteboxish

Migrate most behavior tests to be whitebox(ish).
Document custom error body deserialization exception.

This is a less-than-ideal API but the behavior can't be changed because it's public API. We'll make error handling more robust in future versions.
Bump RxJava version.
Bump Guava dependency.
Bump Jackson dependency.
Bump Wire dependency.
Bump AssertJ dependency.
Merge pull request #623 from square/jw/document-exception-behavior

Document custom error body deserialization exception.
Use the annotations directly for parameter handling.

Before we attempted to normalize the parameter annotations into a name and type model. The introduction of multi-part transfer encodings required something more expressive so the annotation instances themselves were used. This change removes the name and type in favor of using the annotation for everything.

Deprecate the pre-encoded annotations in favor of boolean fields on the corresponding 'regular' annotation.