Add config reloading

Instead of updating the configuration, we configure a new Server instance and
then migrate Listeners that still exist to it. Open client connections are
left completely untouched.

Closes https://todo.sr.ht/~emersion/tlstunnel/1
09d28676 — minus a month ago
Remove unused Server reference
Add support for ALPN

Closes: https://todo.sr.ht/~emersion/tlstunnel/11
Revert "readme: fix issue tracker link"

This reverts commit 30dc7be08e8afa7a33da3a8228377755ae96d34a.

This commit contains WIP changes committed by mistake.
Fix Unix socket backend config
readme: fix issue tracker link
readme: add contributing section
Add support for TLS backends

Closes: https://todo.sr.ht/~emersion/tlstunnel/6
Update to go-proxyproto v0.3.0
Move ACME logger setup to cmd/tlstunnel

This will allow us to customize the logger options depending on CLI
Enable certmagic logging
Drop TODO regarding ACME HTTP challenges
Add "tls load" frontend directive
Switch to scfg

And we get nested blocks for free.
Set PROXY protocol PP2_TYPE_SSL
Use upstream proxyproto.HeaderProxyFromAddrs
Add the "tls.email" directive

To receive expiration warnings from Let's Encrypt.
man: fix acme_ca directive name

Fixes: e2f4dddfefbc ("Change `tls ca` to `tls acme_ca`")
man: add a "files" section