Add a regression test for transparent gzip + basic auth

The bug is fixed but there wasn't an obvious test.
See report: https://code.google.com/p/android/issues/detail?id=74026
Fix formatting / parsing for Android

Ensuring that this Android bug is fixed for the next
Android release:
https://code.google.com/p/android/issues/detail?id=66135

On Android the SimpleDateFormat for "zzz" returns GMT+00:00.
This is regrettable but awkward to change as it is existing
behavior.
https://code.google.com/p/android/issues/detail?id=66136

This change fixes the format to 'GMT'.

This change also fixes a bug where the platform default
timezone was used for parsing some date/times and not GMT.

Various tests have been added to prove the behavior when
timezones are missing and dates are malformed.
Merge pull request #1011 from nfuller/FixParseFormat2

Fix formatting / parsing for Android
Merge pull request #1010 from nfuller/TransparentGzipTest

Add a regression test for transparent gzip + basic auth
Allow duplicated charsets in MediaType
Merge branch 'master' of github.com:square/okhttp

* 'master' of github.com:square/okhttp:
  Add a regression test for transparent gzip + basic auth
Fix ResponseCacheTest for Android

Pull #1011 broke ResponseCacheTest on Android.

The test was asserting a header generated
using a copy of the old broken implementation.

The test now just uses HttpDate, which now has its own
tests.
Bump Okio dependency.
Merge pull request #1020 from square/jw/okio-update

Bump Okio dependency.
Merge pull request #1018 from nfuller/FixResponseCacheTestOnAndroid

Fix ResponseCacheTest for Android
Convert disk cache to use Okio.
Merge pull request #1023 from square/jw/okio-lru

Convert disk cache to use Okio.
fixes truncating of headers with timestamp values
Support overriding content type via explicit header.
Merge pull request #1028 from square/jw/content-type-override

Support overriding content type via explicit header.
Update MultipartBuilder to support content length.

In order to track content length we need to convert the headers and boundary of a part to a Buffer eagerly. The length of this Buffer plus what each part's RequestBody reports allows tracking what the overall content length will be. The presence of any streaming body means the length of the entire multipart request is unknown.

Common parts of the boundary and header have been changed to raw byte[] to save the cost of allocation and UTF-8 encoding.
Merge pull request #969 from square/jw/better-multipart

Update MultipartBuilder to support content length.
Request URI's have a dependency on the request URL (if the URI is uninitialized). However, URL's can also be null if not initialized with the urlString. This fix initializes the URL properly to avoid NPE on Request.uri() calls.
Merge branch 'seato-seato/null-request-url'
Move frame length constraint to where it is used. Remove method only used in tests.