Removed cancelation check from the Success monad

Also added new test case in tests/async.cpp
Adds WithSubstate monad and a test for it