py: add async/await/async for/async with syntax

They are sugar for marking function as generator, "yield from"
and pep492 python "semantically equivalents" respectively.

@dpgeorge was the original author of this patch, but @pohmelie made
changes to implement `async for` and `async with`.
diff --git a/py/qstrdefs.h b/py/qstrdefs.h
index da22a40..a3b6883 100644
--- a/py/qstrdefs.h
+++ b/py/qstrdefs.h
@@ -94,6 +94,14 @@
 Q(__pos__)
 #endif
 
+#if MICROPY_PY_ASYNC_AWAIT
+Q(__aiter__)
+Q(__anext__)
+Q(__aenter__)
+Q(__aexit__)
+Q(StopAsyncIteration)
+#endif
+
 Q(micropython)
 Q(bytecode)
 Q(const)