Password Generation Library

(I'm mostly creating this PR so Travis will run the tests. Cough.)

Features:
* Generate a random password
* Hash a password with PBKDF2
* Securely validate a PBKDF2 hash

Other changes made by this PR:
* Added test cases
* Added `CI_Security::compare()` to evaluate a string without leaking timing information
Remove the `$security` property from this class and do this:

    get_instance()->security->get_random_byes(PHP_INT_SIZE)

It's the only place you're using it.