ReplayTask now uses explicit ReplayTaskStep objects, and allows
clients to specify a binding for `this`.

Fixes #179.