BREAKING CHANGE: Transports must now be passed and use an `Upgrader` instance. See the Readme for usage. Compliance test suites will now need to pass `options` from `common.setup(options)` to their Transport constructor.
* docs: update readme to include upgrader
* docs: update readme to include MultiaddrConnection ref
* feat: add upgrader spy to test suite
* test: validate returned value of spy
* feat: callbacks -> async / await
BREAKING CHANGE: All places in the API that used callbacks are now replaced with async/await
* test: add tests for canceling dials
* feat: Adapter class