change MessageCodec to allow encoding and decoding multiple types from a .proto file instead of just one
update readme