#68: Add keychain initialisation requirements
 #68: Add exception throwing when manipulation non initialised keychain
 #68: Create agile keychain if it doesn't exist
 #68: Raise exception if initialising an already initialised keychain