~sircmpwn/tokidoki

More depency upgrades
Update pam to v2.0.0
storage: adapt to go-webdav interface changes
Upgrade dependencies
Migrate to go-imap v2

v1 is no longer actively maintained.

Co-authored-by: Conrad Hoffmann <ch@bitfehler.net>
Add OAuth 2.0 backend
storage/filesytem: more consistent logging
auth/*: more consistent logging
Add tokidoki(8) man page
Add htpasswd-style static file auth module

Can be used via `-auth.url=file://`. Only supports bcrypt password
hashes ($2y). Use e.g. `htpasswd -c -BC 14 <filename> <user>` to create
a file. Documentation forthcoming.
Update README to reflect the multi-resource update
Initial multi-calendar/address book support

Thanks to the latest version of go-webdav, this is now a thing. A lot of
operations (like creating a calendar) are not yet supported. But the
basics work fine. Note that multi-calendar means that different users
can each have their own calenders. Resource sharing is not yet
implemented either.

Includes the adding of a lot of debug logs, as issues are otherwise
pretty hard to figure out. The logging still needs to be made more
consistent, and probably cleaned up a bit in some places.
Add a "null" auth backend

Not built by default, but can be added with `go build -tags nullauth`.
Enabled by running tokidoki with `-auth.url null://`. Very useful for
simpler debugging when you don't want manage test accounts with actual
passwords.
Upgrade dependencies
Improve README: TLS, logging
Add some more infos to README
Pass capabilites to principal path handler

The capabilities are added automatically by the default principal path
handlers in the `caldav` and `carddav` packages. However, using the
custom handler, they have to be passed in manually.

These being missing before was a violation of the RFC and the cause for
issues when using e.g. DavX5 client. This is now fixed.
Update go-webdav to latest version
Switch to a proper logging library

Structured logs can be enabled with `-log.json`.
Next