Adds Support for Keyfile Key

Previously, the module could specify a keyfile (i.e. /etc/keyfile)
but could not create the file and populate it with a key. This
patch introduces the key parameter that allows a user to specify
the key to use for keyfile-based authentication.
If $keyfile is set but $key is not, the keyfile will end up being an empty file. Is this intended?