Add setTimeout back to Promise class. Add more tests for Promises.