Add ability to specify keychain for OS X backend
Add ability to specify keychain for OS X backend

By default, the OS X backend uses the built-in `security` command to
store on retrieve passwords from the OS X keychain.

The `security` command, in turn, defaults to a user's
`~/Library/Keychains/login.keychain`. However, in certain settings such
as being called from `cron`, it will instead default to
`/Library/Keychains/System.keychain`, which will obviously not have the
user's passwords.

Many of the `security` subcommands have the flexibility to use a
non-default keychain as an argument. This commit gives the
default OS X Keyring backend a new method
`keyring.backends.OS_X.Keyring.set_keychain`. `set_keychain` accepts a
path to a specific keychain when a non-default keychain is desirable,
without impairing other functions.

The use case that led to `set_keychain` is using keyring from cron in OS
X, which defaults to using `/Library/Keychains/System.keychain` instead
of `~/Library/Keychains/login.keychain`.

Usage example:

```python
import keyring

mypass = keyring.get_password("foo", "bar")

keyring.get_keyring().set_keychain("/Users/me/Library/Keychains/login.keychain")
mypass = keyring.get_password("foo", "bar")
```

jaraco/keyring