~abyxcos/matt

Move access token to the header, and hide some URL noise in to our helper functions. Start hashing out event structures.
Support joining rooms (but not getting events yet) and clean up the http code to URL escape URLs that need to be escaped.
Run go fmt and abuse my pretty code.
Refactor our http calls based on jrick@'s advice on a pattern used in decred wallet.
Refactor the widgets to their own file, and add a more generic widget type.
Revert "Lock our prints so another thread won't move the cursor from under us."

This reverts commit b0589112bc0b784914b25f036f02288805981828.
Lock our prints so another thread won't move the cursor from under us.
Lock our prints so another thread won't move the cursor from under us.
Add local echo for 'rune' keys and clear the prompt on enter.
Import settings from our old database and start listing rooms we're joined to.
And some command processing infrastructure.
Basic readline support is go.
Import a failed attempt at using bubbletea, and a rewrite using ANSI/VT100 directly (much better).
Add a pager so we get some easy/lazy switching of chat views. We may have to scrap this later and track our buffers manually as this has unbounded memory use.
Start making the database less ugly. Add an upsert to settings.
Make the default theme use the terminal's theme. Bye bye ugly defaults.
Input handler has gained some sanity. Don't look too closely at the database though, it's wrong.
Start the resturcture to use tview and become a real application. Continue to ignore the horibleness in main, that will start to go away next commit.
The code in main is very questionable. No secrets are hardcoded though, so suitable for an import.