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 am quite new to Promises. Can you elaborate what you mean with `then` + `catch` pattern?
I could rewrite it like this:
```
var digest = this._make_digest(...);
if (digest != .. )  { return 'error' }
return digest;
```