Add a new log level: HEADERS_AND_ARGS

@JakeWharton 

This adds an additional log level that logs the request args and response body directly (via toString()). This is useful for logging binary formats such as protocol buffers where converting the serialized byte stream to a String (i.e. `LogLevel.FULL`) is not appropriate.

An example log might look like:

```
---> HTTP POST http://example.com/
Foo: Bar
Content-Type: text/plain; charset=UTF-8
Content-Length: 2
---> REQUEST:
#0: TypedString[Hi]
---> END HTTP (2-byte body)
<--- HTTP 200 http://example.com/
Content-Type: application/json
Content-Length: 42
<--- END HTTP (2-byte body)
<--- BODY:
{}
```

These lines are new:

```
---> REQUEST:
#0: TypedString[Hi]

<--- BODY:
{}
```
Hmm, yeah. I see. It's fine as-is then. The log format is an implementation detail we can change at any time anyways.