Add `runtime::Handle::block_on`. The function enters the runtime context and
blocks the current thread while the future executes.
Refs: #3097Fixes#2965, #3096
I ran into this when writing the docs for `Handle::block_on`. Seems to
be caused by a bug in cargo. Until that is fixed I think it makes sense
to mention it in the contributing guide.