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.
Merge pull request #202 from square/jw/rewrite-all-the-things

Rewrite annotations to be more descriptive.
Normalize copyright headers.