Only execute hook marked as executable

Also support directory based
hook https://github.com/git-hooks/git-hooks/wiki/Advanced-Usage