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

Turns on TLS by default and uses public keys to authenticate access.

- This PR still may require further testing and input on the user experience.
- FSNotify support has not been added to detect changes to authorized_keys
- Implementation of proposal from #7667

@bfirsh please review and comment on whether this is missing anything needed
FWIW, `systemd socket (or whatever that thing's called)` is also "just" a unix socket (passed to Docker itself as a file descriptor) -- the only difference is that systemd manages/"owns" it.