Fixes #11 Source directories should be explicitly tracked

* this also adds preliminary support for specifying an output directory
(but not a single output file yet)