Initial review

The most recent commit message is so accurate.

(We discussed this in real life, noting it here for completeness)

This is fine for the initial version, but I don't think we should be consuming files in this clunky format long-term.  Let's define an internal file (or directory) format that fits our needs, and provide scripting that generates such files from a plaintext list of blocklist entries.

This will also make testing cleaner and nicer, since we can manage test datasets as plaintext lists rather than binary-ish blobs.