Integrate Keychain Services for authentication

This change-set implements and adds tests for auth credential storage using the system's Keychain Services API. It also does some refactoring of the base test case class.

@DavidHuie @arionhardison I'm available for in-person code reviews whenever.