Change the public API to work with binary strings

Following elixir convention. Makes it possible to work with binary
string within the code, and simple to use this library from elixir code.
Please fix functions specs