Enhance the suite of control structures by adding an async analogue to `std::shared_mutex`, which is a form of reader-writer lock.