Optimizing Message::translate.
QA: fixing prominent violations.
Docs/QA; refactoring Hmac::read().
Refactoring and formatting Query.
Documenting, reformatting Database.
Renaming _genX methods to _generateX; using camel case.
Whitespace.
Formatting docblock.
Fixing links to manual.
Adding drain option to allow disabling auto stream reading.

Future versions may disable draining by default.

When the drain option is disabled will not drain stream when stream
data was sent. This reduces memory usage and enables streaming very
large files (i.e. uploading video content). You must read than read
stream data manually.

```
$stream = fopen('php://input', 'r');
// Do something with $stream.
fclose($stream);
```

When drain is disabled automatic content decoding is not supported
anymore. It must be manually decoded as follows.

```
// ...
$data = Media::decode($request->type, stream_get_contents($stream));
// ...
```

Adding and expanding tests to document current and new optional behavior.