add support for async mutex

Add support for async mutex for synchronizing coroutines/tasks using
sender receiver framework. Also, add lock_guard support which provides a
RAII wrapper for mutex to own it for the duration of a scoped block.

Tested: Add Unit Test using gtest
```
1/1 test_async_mutex OK              2.01s

Ok:                 1
Expected Fail:      0
Fail:               0
Unexpected Pass:    0
Skipped:            0
Timeout:            0
```

Change-Id: I691528885a94b9cf55d4b7f2fb0c1e0e6d0ab84f
Signed-off-by: Jagpal Singh Gill <paligill@gmail.com>
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meson.build b/meson.build
index d11202e..64e887f 100644
--- a/meson.build
+++ b/meson.build
@@ -37,6 +37,7 @@
     'src/async/context.cpp',
     'src/async/fdio.cpp',
     'src/async/match.cpp',
+    'src/async/mutex.cpp',
     'src/bus.cpp',
     'src/bus/match.cpp',
     'src/event.cpp',