WIP - Custom hooks POC

This is a rough proof of concept for implementing server-side custom hooks. It is meant to spark discussion. We can add implementation for all types of hooks that git supports. If a user places a properly named hook file in the proper location, gitlab shell will just execute it and pass the proper args based on what the hook type receives on stdin.

Custom hook directory structure would look exactly like the repository directory:
`${namespace}/${repo_name}/pre-receive`, etc

## What's missing in this POC?
1. Obviously, there's not actual code in the custom hooks class.
1. There will probably need to be a new config key for custom hooks directory path.
1. Other hooks types - pre-commit/etc
Post-receive hook does not cancel push event. So GitlabPostReceive should go first to be sure application processed push correctly.