* Move lib.rs to protocol.rs
* Rewrite floodsub for ProtocolsHandler
* Add a FloodsubBehaviour
* Fix closing floodsub after a message
* Address concern
* Make it conform to the protocol
* Make it really conformant
* Address concerns
Refactor multiaddr crate.
- Remove `AddrComponent`. Instead `Protocol` directly contains its
associated data.
- Various smaller changes around conversions to Multiaddr from other
types, e.g. socket addresses.
- Expand tests to include property tests which test encoding/decoding
identity.