Cleaned up some of the code

Removed 'resource' functions since they were really only useful during
early development. Added a :pre assertion to transform-file, might add a
few more in a bit.
Add code to check for missing fact docs

Instaparse, great as it is, doesn't actually throw an error when a file
doesn't parse. Instead, it prints a message to the console. That message
gets swallowed in this case and the error passes by silently.

There are a lot of ways I could have solved this, but in the end I've
settled on an auditing process. Auditing works like this: the input
directory is scanned for occurrences of the "Fact: factname" pattern,
and each "factname" is stored in a set. This set is then compared to the
set of facts that appear in the output, and the difference (if any) is printed to
the console at the end of the run.

This is a pretty quick implementation that actually doubles the parsing
load, so next up is a refactor in core to fix that.
Fixed a bug in the way audit results are reported

Duh on the false falseyness of the empty set.
Refactored main to avoid double-parsing

This was a necessary change after adding auditing, but now the main
function is getting a bit smelly. In the meantime, at least the facts
are only processed one time.