Broadcast binary encoding.

* Ability to send a broadcast.
* A broadcast on type `T` will get the raw bytes (`&[u8]`) of
* it.
* Added a `send` method on the `Connection` trait
* Renamed the `Message` trait with a `Response` one.
* Each message has it's length prepended; so you only need to read a
  single `u8` value.
* Added some more tests
* Brought code up-to-date with Rust master.