The for loop that used to do it loaded the wrong messages.
New method calculates correctly and also doesn't spend time loading from database if we're going to throw it away.
Hopefully, anyway.
- Arbitrary font size setting
- Line height setting
- Multiple crush settings
- Rewrote how tabs work hopefully for performance
- Hidden messages are actually put elsewhere
- Attempts to correct chat backlog restore on rejoin