Add support for adding and removing keys from the SSH agent, and listing available keys

The SSH Agent Protocol has messages for adding keys to the agent, removing keys from the agent, and requesting a list of keys from the agent. It would be useful if libssh provided APIs to allow applications to easily perform these operations against an SSH agent.

Additionally, agents may support locking and unlocking with a passphrase which would be useful to support.