- Binary and string support

Implemented binary support in tandem with strings. This meant minor internal changes. Remove some todos.

- Documentation
- Specs
- Tests

This should not break any old functionality I hope!
Looks like "binary/string" conversion isn't implemented for plural gettext calls. So, `?N_("Fish", "Fishes", N)` will not return translated string.
This will break backward-compatibility.