web: Update to Font Awesome 5.
cm: Add `package.json` information.
cm: Replace Grunt/RequireJS with Gulp/Browserify.

Yes, I know, this sounds like it's 2014 or something, and cool kids are now
actually on webpack or whatever.

Anyway, besides the change to a `gulpfile`, it also moves all dependencies
over to `npm` (via the `package.json` file), which cleans up the repository
nicely, and replaces awkward JS imports with simpler `require` statements.
grunt: Update versions in package manifest.
Big refactor for better database caching:
- Using SQL alchemy instead of raw SQLite.
- Better architecture and internal APIs.
- Fixed some issues where the database was not used correctly.
- Fixed some problems with querying pages.
Got rid of `Makefile`, now using `grunt`.
Now using a custom `Bootstrap` include file.