Fix media metadata-only uploads and various documentation fixes.

Requires a change to media parameter that breaks old implementation but allows for more flexible media uploads.

``` js
media: data
```

now becomes:

``` js
media: {
  mimeType: 'mime here',
  body: data
}
```
`options` is applied directly to `request` so in a sense, these are defaults. `mediaUrl` is used in place of `options.url` the case that the request includes a `media` and `media.body` value passed.