Async error reporting for objects creation

Fixes #105. There is no draw call errors yet, but the foundation is provided.

I encapsulated some members of `Renderer` into the new `Dispatcher` struct, which allows us to tell Rust what we want to mutate and what not (notice less fighting with the compiler during the draw call).