factor pbkdf2 into init/block functions

allows rand_source to iteratively invoke pbkdf2 as
needed for more source bytes