Eagerly consume a stream when exposing to caller.

HTTP responses return an input stream wrapped in a TypedInput which we pass to the converter for deserialization as fast as the bytes come in. If we are skipping the converter (non-2xx resposne code) or returning the response directly we eagerly consume the stream to a byte[] for the caller.

If the converter threw an exception while reading the stream then it is nulled out before being handed to the RetrofitError. This prevents partially read streams from being exposed.

Closes #181.
Merge pull request #187 from square/jw/eager-stream-read

Eagerly consume a stream when exposing to caller.
Multipart request improvements.

* Added fileName() to TypedOutput so non-File parts can be named.
* Support Content-Length in multipart requests.
* Serialize parts to byte[]s so length is available.
Merge pull request #183 from codebutler/master

Issues with new multi-part implementation
Reset thread name to idle when not in use.

Closes #188.
Merge pull request #190 from square/jw/thread-name-reset

Reset thread name to idle when not in use.
Exposes the static RetrofitError construction methods

Allows `RetrofitError`s to be thrown from code outside of Retrofit
Merge pull request #192 from imminent/patch-1

Exposes the static RetrofitError construction methods
Bump GSON to latest stable.
Add OkHttp-specific client when its present on the classpath.
Merge pull request #196 from square/jw/okhttp

Add OkHttp-specific client when its present on the classpath.
Merge pull request #195 from square/jw/gee-son

Bump GSON to latest stable.
issue #198: rename Header -> HeaderPair to harvest the names for new annotations
Allow digits in path parameter name

Modify PATH_PARAMETERS regular expression to allow path parameter names that
are strings containing lowercase characters, digits, underscores, or hyphens
that start with a lowercase character. Closes #199.
fix issue #198: add new @Headers and @Header annotations
Merge pull request #201 from matthewmichihara/allow-digits

Allow digits in path parameter name
issue #198: validate header names per rfc 2616
Rewrite annotations to be more descriptive.

Method level:
 * `@FormEncoded`
 * `@Multipart`

Parameter level:
 * `@Path` - URL path replacement
 * `@Query` - URL query string
 * `@Pair` - Form-encoding pair
 * `@Part` - Multi-part part
 * `@Body` - Single-object body (Old `@SingleEntity`)

This removes support for `@QueryParam`/`@QueryParams` in favor of including constants in the declared URL itself. e.g.,

    @GET("/list?foo=bar")
Merge remote-tracking branch 'ac/header-params' into jw/rewrite-all-the-things

Conflicts:
	retrofit/src/main/java/retrofit/http/RequestBuilder.java
	retrofit/src/main/java/retrofit/http/RequestHeaders.java
	retrofit/src/main/java/retrofit/http/RestAdapter.java
	retrofit/src/main/java/retrofit/http/RestMethodInfo.java
	retrofit/src/main/java/retrofit/http/client/ApacheClient.java
	retrofit/src/main/java/retrofit/http/client/Header.java
	retrofit/src/main/java/retrofit/http/client/Request.java
	retrofit/src/main/java/retrofit/http/client/Response.java
	retrofit/src/main/java/retrofit/http/client/UrlConnectionClient.java
	retrofit/src/test/java/retrofit/http/RequestBuilderTest.java
	retrofit/src/test/java/retrofit/http/client/ApacheClientTest.java
	retrofit/src/test/java/retrofit/http/client/UrlConnectionClientTest.java
Review feedback.