consul: use keyring operation type to cut out duplicated logic
agent: guard against empty keyring files
consul: detach executeKeyringOp() from *Internal
agent: squash some more common keyring semantics