Make it so that repeat: can terminate on nil OR an object and return that.

Hi @couchdeveloper,

This is a small pull request that makes it so that `repeat:` behaves slightly differently (and more consistently with `then` say). Instead of terminating on `nil` and returning a constant, it terminates if and only if the value returned from a repeat block is not a promise. Furthermore, when the termination occurs the result is returned up the chain. 

I'd like to get some feedback from you. My plan is to use this in my own code, in order to poll a webservice (may take a few repetitions) and then return the result. 

What do you think?

Thanks,

Dmitry