Tighten up effect types on modifyScope and modifyThis

Fix #19.  Since these run immediately, there is no need to expose the
unsafeInterleaveEff.
Merge pull request #21 from dylex/master

Tighten up effect types on modifyScope and modifyThis
Restrict Promise.then' not to change failure type

Fix #17
Merge pull request #22 from dylex/master

Restrict Promise.then' not to change failure type
Eliminate pureResolve from Bifunctor Promise
Remove liftPromiseEff

This function effectively ignored its first argument, as it was used
only to catch errors from a guaranteed successful promise. Thus it was
redundant with liftPromiseEff'.