Import Shake code and stub out functions

And implement 'Rules' and 'run'...
rule and apply
Rule priorities