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
Call it `get_random_number()`, or `get_random_integer()` and cast the return value to (int).