Use A+ promises

Right now `monk` uses simple build-in promises. But it's impossible to work with this promises using promises control flow modules like `when.js` or `Q`.

I think it'll be great to extend current promise implementation with `.then` method to support [Promises/A+ specification](https://github.com/promises-aplus/promises-spec).

The easiest way I see is to take [some A+ promise](https://github.com/promises-aplus/promises-spec/blob/master/implementations.md) (e.g. [mpromise](https://github.com/aheckmann/mpromise)) and add `.then` method to current `monk` promise implementation to wrap it into A+ promise:

```js
Promise.prototype.then = function() {
  var p = new MPromise;
  this.success(p.fulfill.bind(p));
  this.error(p.reject.bind(p));
  return p.then.apply(p, arguments);
};
```