extsvc/auth: add SSH key credential type
Created by: LawnGnome
This involves implementing a new auth.Authenticator that can store an SSH key. Since this cannot be used with a HTTP request, any attempt to invoke its Authenticate method must result in an error. The key (sorry) is that we need to be able to store the private key as a UserCredential and access it later.
Although we need to be able to present the public key to the user, we should only need to store the private key, as this can be derived later.
Part of the plan for #16888 (closed).