Bug 1100945: adding a PasscodeHelper

This should do as an initial draft.
Looking forward to any kinds of feedback, especially lines 70-73 and 88-100. :)
This means rather than to create a `then` with two callbacks, we can remain our chain without branches via:

    .then((ifThingsGoWell) => { // do something
    })
    .catch((ifThereIsSomethingWrong) => {
    })