Rewrite of async

rewrite of async to keep types in separate assembly with a different
profile
Updates to Demo app for async

Support async mode in demo app.