Security enhancements! Please audit these carefully in case I made a mis...

...take.

* Add openssl support
* Remove XOR encryption
* Add hmac() method
* Move to AES not RIJNDAEL 256
* Changed get_key() to use raw SHA-256 instead of hex-encoded MD5