Refactor KeychainItem

* Move generic logic GenericPasswordKeychainItem to superclass
* Pass search query identifier as initializer parameter
* Add persistent flag
* Only delete item when persistent
Add InternetPasswordKeychainItem