- 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!
Because it's defensive programming and considered bad practice.

But it's rather minor and nothing I'm going to bicker about. I'll just add the guard.