Check if hooks are executable before calling them
Replace calls to `which` with Python `os` funcs
Clarify check if command is a path in has_program
Merge remote-tracking branch 'jturner314/replace-which' into python3
Merge remote-tracking branch 'jturner314/check-hooks-executable' into python3