Merge pull request #1 from mtibben/master

Only rebuild when something has changed
Rewrite, now substantially less wtf-inducing
Specify the check, build and run commands at runtime

Adds arguments for check, build and run
Adds a "shotgun" logger so shotgun logs are distinguishable from normal stdout and stderr
Adds a factory function
Uses io.Multiwriter to write to stdout and stderr