Update the protocols and transport subdirectories to the 2018 edition.
NB: The websocket transport cannot be moved to 2018 edition due to
websocket-rs's use of the keyword async as the name of a module.
* 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