Passphrase: bring up to current standards.

Intended to fix issue #313 and also fix #314.

- Add ability to use queries like "pass phrase 3 words"
- Add comments describing how it works.
- Add (arbitrarily chosen) limit of 10 words maximum.
- Constrain the query format more tightly
- Add more tests

This turned into more of a rewrite than I intended.

In the previous version, it was more forgiving about what trailed the
number of words requested... but it was assuredly requiring something.
I've decided to be explicit on wanting 'word(s)' at the end.

Previously it required a minimum of 1 word requested, but didn't have a
maximum.  I chose to make the max 10, as it keeps the output fairly
tidy and seems like a reasonable maximum someone might actually use
in practice.