Use coroutines for interface functions

This seems to fit tornado better, and solves https://github.com/bergundy/thrift/issues/1 and https://github.com/bergundy/thrift/issues/2.