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.