Promise.thenOn & don’t unleash Zalgo

Closes #1.
Fixes #22.

`then` and `catch` always execute on the main queue. `thenOn` allows you to specify a queue.

Anytime a block is executed it is done on a queue. This is so we don’t unleash Zalgo.