This takes advantage of generics, and generally clears up a lot of
inconsistencies and quality-of-life issues.
Start of db rework: clean up, start generics, improve tests
Write some nice aspirational package docs
Rework and document the db API
Tests still pass, at least...now for everything else
Update all callsites of db functions
Finish converting all callsites
Not too bad actually! Centralizing access into the helpers makes a big
difference.
wtf it works
This includes the ability to "shadowban" new users who have not yet been
approved. We do not have UI for approving these users.
Migrate deserving users to new Approved status
Add post fetching helpers as well
The logic in the thread/post stuff is definitely getting redundant, but
I'm not sure I'm yet ready to try to abstract any of it away.
The next thing to do is probably to update blogs and other places that
fetch threads/posts, and delete the old helpers.
Move forums and blogs fully to new helpers
Use the helpers on the landing page too
that was easy!
Fix up some spots I missed
Check user status and use helpers on the profile page