Move 4 modules out into General
Move all the Rules under Shake.Rules
#76, add needed function
#76, switch to needed in Ninja
#75, add orderOnly dependencies
#75, properly implement order only dependencies in Ninja
#76, add neededMakefileDependencies
#75, add a test for orderOnly
#76, add tests for needed and lint