1. I want to set the stage to deal with #2898 properly.
2. `request` was deprecated years ago. Decided that it's better to just
move to native Node.js APIs in its place.
3. `glob` was outdated, and it's easier to just toss it than to upgrade
across a major version.
4. I switched to using Marked's "lexer" directly so I'm not fussing
with the complexity of renderers. This of course necessitated a more
complex file processor as its "lexer" is really an AST parser.
I also decided to go a few steps further:
- Drop the cache to simplify everything. I might reverse this later,
but just caching URLs per-page should be enough to prevent the world
from crashing down.
- Drop some more dependencies, so I don't have to come back to this
later nearly as quickly.
- Upgrade to a more modern language version in the scripts.
- Update Marked. It was super outdated.
- Add line and column numbers to the warnings. That took quite a bit of
work, thanks to a missing Marked feature plus a bug in Marked.
- Correct docs generation to always fetch its dependency
- Don't try to close a handle that's already been closed by other methods
- Allow the release script to actually be testable.