rearranging this to line-up more with functional style/paradigm before porting, to make it a little easier;
also, not sure why the author didn't take advantage of the built-in behaviour of random.sample() to select nwords words;
figured-out how I want to deal with (userdictwords ...);
inserted my new version of password(), for reference while porting;
(password ...) is now done - not sure how I'm going to unit-test something that returns random output;