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. :)
I don't know why you need to return a resolved promise with value `false`. Do you intend to nullize the following actions after this `catch`? If so, you can throw the error again.