object plumbing commands

updates #138
we should do that. let's make a `codec.Codec` interface.

(and, this reminds me, we'll need a multicodec format if we want to enable multiple native encodings)