Added unit test for lib/hook to handle invalid hook
Merged lib/git.js, lib/run.js and lib/unit-test.js into lib/shell.js