With #183, the code of runtime will be more consolidated, and it'll be much easier then to build to variants of the runtime handler -- sync and async. In the async case, each opcode will trap and return a future.
The speed of sync runtime matters, but not so much for async -- we can afford more abstractions.
This will be useful for light clients and other cases where state is not immediately available.