Replace external openssl call with "crypt" egg.

The OpenSSL call was using the old UNIX crypt DES password hashing,
which is very weak. Crypt will default to a more sensible mechanism
(Blowfish, but in the future could transparently switch).

Old passwords will continue to work, because the crypt egg detects DES
salts and happily hashes them. When creating new passwords, they will
be hashed using the modern algorithm.

The OpenSSL call passed the password to the shell, so an onlooker on
the server could see it in plaintext. It also neglected to escape the
password for the shell, resulting in a command injection
vulnerability.