Interface change. Support backend switching
Implement encode
Add decode, decode tests
Add line wrapping support, option to turn it off
Merge branch 'pureperl'