Implemented first pass of repo_tree_walk_bigfiles_for_push

This is not ready yet...
Cleaned up repo.c to share common functions and structures
Fixed walk_bigfiles_for_push to use callback data
repo.c was totally over-complicated

Cleaned up callbacks to use oids they are supplied.
Removed useless parameters. (Copy-paste is nasty sometimes)
Implemented the git_tree_walk callback
Added hash to the RepoWalkCallbackFunction
Added functions to get database paths
Send database file path instead of hash
Parameter name changes in src/hooks/pre_commit.c
Fleshed out src/hooks/pre_push.c
Added hash back to the repo callbacks
Added execution of big-push hooks
Added error message for creating pre-push hook