[bt][gap] Use async/await, hide HostDispatcher

* Update bt-gap to use Rust 2018's async/await syntax
* Wrap the HostDispatcher in an opaque type to hide the Arc<RwLock<>>
* Refactor services into smaller units of work
* NET-1536 #done

Test: compiles
Change-Id: Iebb3ea61e0aa289611313d45bfda6a3613ff4496
6 files changed