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:
{}
```
I can do that, although it's kind of a hassle because not all the info is available at the point that the current logs are generated.