Improved create_key function

Added a third option in case both openssl_random_pseudo_bytes and mcrypt_create_iv is missing. I also made use of the second parameter in openssl_random_pseudi_bytes.

From the manual:
"If passed into the function, this will hold a boolean value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. TRUE if it did, otherwise FALSE"