Clean up in data structures, methods and API

* Remove the useless Base32 String encoding
* Remove the default type from the library
* use bspack:
    * easier to implement Encodable.encode
    * easier to implement Packable.pack
* add lot of documentations and simplify the function naming
Change return value of Packable: make it a Monoid
Export useful functions