Add flatMap coercion, so it can handle thenables--not sure if this is the right thing, but going with it for now.  Make all() work with thenables, too.
Memoize in resolver rather than done. Fixes problems with resolvers running multiple times, and effectively memoizes the whole promise chain as it unwinds