Merge async and await

- Implemented async and await
- Removes most of the Dispatcher calls, because most of the code is executed back on the UI thread. The initial stream update might cause a short hang but this is to be expected and can be solved with some work on the loading function
- Closes #42