gpg: handle BAD_PASSPHRASE after MISSING_PASSPHRASE

On some versions of GnuPG, MISSING_PASSPHRASE is followed by
BAD_PASSPHRASE.  Update the state machine to remain in STATE_NOPW
when this occurs.
gpg: treat GnuPG asking for passphrase as error

If GnuPG (v1.x) asks for a passphrase (meaning something is not
right with the agent comms) gcaff hangs waiting for input.  I
encountered this situation in an environment where v2.1 was
installed alongside v1.4, and the v2.1 agent was running (so the
agent test at gcaff startup succeeded) but gpg v1.4 was invoked, and
was unable to locate the agent and therefore prompted for a
passphrase.

Detect this situation and if it occurs quit GnuPG gracefully and
handle it as an unrecoverable error.
todo: add some more ideas