- 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!
The idea was that usualy `Domain` is named as your OTP application, so, if you have 2 apps: one is your main app and the second one is dependency, FS layout will be

```
my_main
    src
        my_main_app.erl
    locale
        en
        ru
    deps
        my_dep
            src
                my_dep_app.erl
            locale
                en
                ru
```
And `my_dep_app.erl` will have lines like `gettexter:textdomain(my_dep)`, while `my_main_app.erl` have lines `gettexter:textdomain(my_main)`.

So, with this `filename:join(code:lib_dir(Domain), "locale")` each app will load locales from it's own `locale` directory - both apps may use single gettexter server.