Issue 8872: use getpass.getpass() to read password.

This avoids passing the plaintext raw password into the script as a
command-line argument, which shells such as bash and zsh will
typically log into a file like ~/bash_history.

As a small bonus, this works a LOT more smoothly if the user's
password has characters in it that either the shell or Python syntax
might like to interpret as metacharacters, like '\' or '"'.

getpass.getpass() is part of Python's standard library in all versions
between 2.4 and 3.3 at least.
Make sure set_fact variables go into VARS_CACHE

Fixes #8758
Fix py26 difference in ssl socket connect call from 99ba9d6
Adding ignore_scripts option to the argument_spec for npm
Merge pull request #8873 from RichardBarrell/issue-8872

Issue 8872: use getpass.getpass() to read password.