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.
ConnectionUpgrade
Introduce `InboundUpgrade` and `OutboundUpgrade`.