Support for optional async

For Issue #8:

Passing `{async: true}` option prevents the current thread from waiting
for a response to appear on the callback channel.