Add support for domains

Support for domains so that async method will preserve the caller process.domain.