Some languages don't like dashes as module names. Fix early.
Tests should no longer touch the done/* files. Make should.

Letting Make touch the done/* files on success allows for a future
enhancement where a per-language done/ directory is possible.

All tests were updated to remove touch instructions (a couple of
exit 0 too), and GNUmakefile now includes the appropriate touch
instruction after a successful test.

So, the tests now only need to do exit 0 (success) or exit 1
(failure).
Be more generic about the creation of the target directory

This change will make it easier to implement per-language
tracking of successful tests. I'm thinking something like
this should be easier to do, now:

done-$(LANG)/%.done: test/% run/%
	@echo === $*: executing...
	@mkdir -p $(shell dirname $@)
	@$< || $(MAKE) -s fail/$*
	@touch $@
	@echo "::: CONGRATULATIONS"
	@echo
GNUmakefile/check-hashbang: enforce full string on mime-type match