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:
{}
```
This format isn't symmetric with the request arguments. I'd prefer to keep everything between the "HTTP" and "END HTTP" lines (which the request currently does).