Added protocol for credential storage, added two implementations,
Keychain-based and NSDictionary-based (for tests).
Closes #14 & #15