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 think you can destruct the objects here:

    var [ digestIteration, digestAlgorithm ] = values;

What I want to avoid is to use `values[0]`.