Refactor bin/1pass to use a CLI class.
Move CLI class to onepassword.cli
CLI-level integration tests & tweaks

* Dependency injection to make tests easier
* Use more appropriate exit statuses from sysexits(3)
* Improve error messages (1pass prefix, typos)
Refactor long, messy run() method.
Add --no-prompt flag to CLI.

Use --no-prompt to read the master password from STDIN instead of prompting.
This allows you to insert 1pass into a pipeline before a command that
expects a password on STDIN.

This command expects a PGP passphrase on STDIN:

    gpg --passphrase-fd 0

This command behaves the same, but expects a 1Password master password on
STDIN which is used to look up the PGP passphrase:

    1pass --no-prompt 'pgp-passphrase' | gpg --passphrase-fd 0
DRY repetitive test.
Add `--no-prompt` to the README.
Last resort error handling.

1pass users should never have to see a Python stack trace.