Add listssrht-initdb
Some minor API additions
Fix error with incorrectly parsed patches
Responsiveness improvements
Fix boolean comparison in user profile
user.py: check for browse permissions in queries
listssrht-lmtp: add basic instrumentation
.builds/alpine: deploy to mail-b.sr.ht
process: correct error in emails w/o In-Reply-To
process: strip() In-Reply-To headers
Fix search for user mailing list listing
Handle search errors
Refactor search to work with new core search code
patches.py: check if patch number is int

Previously, the patchset (patches/<number>) endpoint would return a 500
(sqlalchemy.exc.DataError) if the patch number wasn't actually a number.
This patch requires the patchset_id to be an int.
Fixes https://todo.sr.ht/~sircmpwn/lists.sr.ht/131

Signed-off-by: Benjamin Lowry <ben@ben.gmbh>
process: strip message IDs of whitespace

See discussion on sr.ht-discuss: per RFC 5322, whitespace is permitted
in these headers and needs to be stripped before interpreting the
Message-ID. This was breaking threading for some MUAs.
Improve accessibility of patch review pages
listssrht-lmtp: fix fallback address for . lists
patches.py: fix generated cover letter locals
Upgrade to Alpine 3.11
Improve config.example.ini