Add identity-based TLS auth and UI for client/daemon auth

Add identity-based TLS authentication and use public keys to authenticate access.
This is an implementation of the proposal from #7667.

FSNotify support has not been added to detect changes to authorized keys but may be added in a follow up PR.

Agreed this doesn't appear to match convention. Can change it to newTLSConfig(), it only allocates and sets the base TLS version to avoid the SSL <1.0 vulnerability.