Adding an enhanced AES

Note: This is a breaking change which will require re-encrypting all data for anyone using the AES and MySQL AES providers.

* Passphrases are now derived using [PBKDF2](http://en.wikipedia.org/wiki/PBKDF2) hashing for enhance security. Because of this change, AES now requires a `salt` param in addition to the `key`. The `salt` it used when hashing the passphrase to ensure a unique key is used when encrypting data. The [Armor](https://rubygems.org/gems/armor) gem is used to accomplish this.

* Log subscribers are now more aggressive to ensure searches do not leak keys or plaintext during a search.

* The AES provider was replaced with the [AES](https://rubygems.org/gems/aes) gem.

Close #26