Change mock async behavior to use the supplied Callback instance directly.

This allows service APIs to use Callback subtypes and mock behavior together. Previously this would have thrown an exception due to the internal assumption that all asynchronous APIs were declared using Callback directly.
Merge pull request #493 from square/jw/mock-async-sleep-before-callback

Change mock async behavior to use the supplied Callback instance directly.