Added thenUntil mixin, updated tests & documentation.

I found this useful in my project. Example:

```
backupTo: function( posX ){ 
      return EventChain( this )
         .then( this.face_right )
         .then( this.crouch )
         .thenUntil( this.backup, function(){ return ( this.pos.x + this.size.x ) <= posX } )
         .then( this.crouch );
}