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
@dblessing, +1 on @randx re precedence of the GitLabPostReceive hook. 
Also see my previous comment re: pre-receive hooks where should the  ENV['GL_ID'] variable be set to  nil. Right now it is inside the exec method of the GitLabPostReceive class (gitlab_post_receive.rb). It is the first thing it does before doing anything else. I think it would be best to move it and unset that variable before any of the post-receive hooks are called. That's basically making it more visible and aligning with what the pre-receive hooks does.