Fixed compile errors and added a bunch of unit tests for SalesforceSecurity library.

I guess this is more of a true "unit" test here and trying to test things in isolation. I originally tried doing more behavior-type tests, but the tests were so ugly because of the setup required (but that was also before I really grasped the purpose of the library and how the classes worked together).

I do have more "behavior" type testing in SFSalesorceSecurityTests which do the changePasscode scenarios and then it verifies things were migrated correctly. Plus, this test here only tests a really simple scenario where both old and new are null, so it doesn't test the whole method. ;)

So, maybe I remove it?