Handle ValueTranscoder EncodeTo returns error on bad type

Instead of panicking
ValueTranscoder EncodeTo now receives io.Writer
Remove MessageWriter