support binary buffers with non-binary transports...

I've extended mux-demux to be easier to use with different transports,
and exposed this in multilevel, so that you can do `require('multilevel/msgpack')` to get the msgpack protocol, or `require('multilevel')` to get `json-buffer`.

I could change this, or make msgpack the default,
that might be more performant, but I think more compatibility is a better default.

todo: use injection in the tests, so that each protocol is tested.