In some cases there are needs to authenticate user not in Taskcafe itself.
For this reason option server.remote_user_header was added.
```toml
[server]
remote_user_header = "X-Remote-User"
```
With turned on Taskcafe listens X-Remote-User http header and skip
password checking. But still check user existence and activity flag.
redesigned the project sharing popup to be a multi select dropdown
that populates the options by using the input as a fuzzy search filter
on the current users & invited users.
users can now also be directly invited by email from the project share
window. if invited this way, then the user will receive an email
that sends them to a registration page, then a confirmation page.
the initial registration was always redone so that it uses a similar
system to the above in that it now will accept the first registered
user if there are no other accounts (besides 'system').
the secret key for signing JWT tokens is now read from server.secret.
if that does not exist, then a random UUID v4 is generated and used
instead. a log warning is also shown.
allows for config settings to be easily set through ENV variables,
config files, or CLI flags
adds flag to run migration on web server start (fixes#29)