Enable developers to implement their own encoder
Properly handling scalar bytes
Encoder support
Merge branch 'encoding'