Merge pull request #173 from stefanpenner/cleanup_all

all should use cast for thenables
oops, fix all.

Scumbag stef must run tests on correct branch.
hash now casts promises, and doesn't invoke then multiple times.