Bug 1111482 - Introduce PromiseStorage +shepherd

(and here)