chores: restructure project, adopt gulp, and revise docs
This is just a small restructure of the project, more to come in later PRs.
Build Tool
I've wanted to migrate to some kind of build tool for a while. However, none of the obvious options like webpack, Rollup, or esbuild seem like strong candidates. I was hoping for a simple setup, but to get the exact output I wanted, they seemed painful.
- I wanted all source code written by me to be copied in as-is.
 - I want node_modules that are imported to be minified with a copyright notice only includes once at the top, stored in a directory called 
vendor, and for the import name to be renamed accordingly. - Preferably with tree shaking, though I had trouble finding a simple setup for this.
 
I ultimately settled on using a task runner rather than a bundler. We'll reconsider this in future if another tool seems better suited, but meanwhile we'll be using Gulp.
Updating ical.js
We no longer inline a static copy of ical.js into the repository. Rather, we depend on the version hosted on npm and include the minified copy in the build artifact.
This will make it easier to keep the version up-to-date, plus avoids storing huge chunks of code in this repository.
Documentation
Many small revisions to the documentation.
- Reduce verbosity of the Usage section.
 - Fixed a typo. (
contracts→contacts) - Remove where I list other websites that support Libravatar. Just seems unnecessary.
 - Update instructions that were still referencing 
npmto useyarninstead. - Clarify that a developer can use 
yarn run devto watch for changes. - Convert list of recommended tools for the localization workflow to a table.
 
Chores
- Adds 
<!DOCTYPE html>tobackground/index.htmlwhich just removes a quirks mode warning in the devtools. - Include the 
LICENSEfile in the final build so that Thunderbird users actually receive the LICENSE. 
Related
- Closes #6 (closed)