Merge pull request #587 from bhariharan/unstable

Use protocol
Changing underlying storage of keys to SFKeyStoreKey, to denote classes
Moving key store out into its own classes
Interim checkin: lots of key store class implementation
Some workflow bugs / errors found at initial runtime pass
Moving passcode verification before creation/update
Delegating responsibility of passcode startup validation to SFSecurityLockout
Misc updates, comments for key store functionality
Clarifying clearPasscodeState and clearAllPasscodeState usage
Fall-back to the main bundle since NSLocalizedStringFromTableInBundle must *not* be supplied with a nil bundle
Merge pull request #141 from mnachbaur/unstable

Fall-back to the main bundle since NSLocalizedStringFromTableInBundle mu...
Fixing typo in comments
Merge pull request #588 from khawkins/keystore_key_classes

Key store key classes
Fix login redirects for communities