Pass whole Async to context checker

Instead of passing only the Async options to the context complete
checker, pass the entire Async.  This should enable the context checker
to take advantage of any methods defined on Async, particularly
customized Asyncs.
Add unit test for Async context checker encoding/decoding

Add a unit test that verifies Async context checkers get correctly
encoded to an Async options dict and that they are correctly decoded
from the same.