Controller/Dialog/Modal: allow extension of promiseGenerator

promiseGenerator is a good enough concept to let subclasses extend. This way
the downstream can offer a different Modal.init experience without much work.
It would be a bit clearer that promiseGenerator is overridable if attached to the extension object with an empty function and the `@abstract` tag