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. :)
Should we unify the convention to name a function? Since you have `_deriveBits` and `_make_digest` at the same file.