Rearrange OkHttp modules.

The HTTP client and SPDY code are now a single module that
mockwebserver depends upon.

The tests are now in a separate module that depends on both
OkHttp and mockwebserver.
Merge pull request #573 from square/jwilson_0227_modules

Rearrange OkHttp modules.
New mockwebserver docs.
Tweak Markdown.
Recover from SSL protocol exceptions.

Previously this appeared to work, but only because our test environment
usually had multiple IP addresses for localhost.
Ignore a broken test for SPDY failure recovery.

https://github.com/square/okhttp/issues/578
Use the server's date format.

Slightly related to this AOSP bug report:
https://code.google.com/p/android/issues/detail?id=66135
Confirm that we use GMT formatting in setIfModifiedSince().
Merge pull request #581 from square/jwilson_0301_gmt_dates

Confirm that we use GMT formatting in setIfModifiedSince().
Merge pull request #580 from square/jwilson_0301_date_formats

Use the server's date format.
Don't require OkBuffer callers to cast.

The casting masks bugs. Instead accept a long and do a range check in
OkBuffer.
Merge pull request #577 from square/jwilson_0301_recover_from_ssl_protocol_failures

Recover from SSL protocol exceptions.
Merge pull request #579 from square/jwilson_03031_multiple_routes

Ignore a broken test for SPDY failure recovery.
Merge pull request #582 from square/jwilson_0301_readlongs

Don't require OkBuffer callers to cast.
Fix and test PATCH.
Use a sneaky throw when RealBufferedSink.close() fails.

This is the same technique used by the buffered streams in AOSP. It's
a little more reliable than what we were doing before because it will
still close the underlying sink regardless of what write() throws.
Merge pull request #583 from square/jwilson_0301_method

Fix and test PATCH.
Merge pull request #584 from square/jwilson_0301_sneakythrow

Use a sneaky throw when RealBufferedSink.close() fails.
Add HTTP/2 PushObserver.
Merge pull request #566 from square/adrian.push-observer

Add HTTP/2 PushObserver