Extract common future/async conversions to library.

closes #54