Disallow committing to master.

Summary:
In the new github-style deploy world, you commit to deploy branches,
never to master directly.  This hook helps ensure this.

For emergencies, you can override this hook by using 'git commit -n'.

(Even though we are not turning on github-style deploys quite yet,
this is safe to deploy a few days before since it requires positive
action on the part of users to install it.  For extra security, we
will probably put a receive hook on github as well, but that *will*
have to wait until the last possible moment.)

Use git rev-parse rather than grepping .git/HEAD.

@alpert knows all the cool tricks!

Allow hard-coded superusers to commit, and only apply it to the webapp branch.

Oops, thanks alpert for checking this!

Test Plan:
  % cd ~/khan/webapp/login
  % echo >>login.py
  % git comit -a
  ref: refs/heads/master
  FATAL ERROR: You cannot commit directly to the master branch.
  Commit to a deploy branch instead:
  https://sites.google.com/a/khanacademy.org/forge/for-developers/working-with-git-and-mercurial/git-at-ka

Then tried again in a branch:
  % git co -b test
  % git commit -a
  <edit window pops up>

So it correctly disallows commits to master but not to a branch.

(same)

Added "-e csilvers@khanacademy.org" to SUPERUSERS and did
   cd ~/khan/webapp/login
   echo >>login.py
   git commit -a
and it popped up an editor rather than failing.  Then reverted
SUPERUSERS back and did
   echo >>login.py
   git commit -a
and got the error message: you cannot commit directly to master.

Then I did
   cd ~/khan/aws-config
   echo >>README
   git commit -a
and it popped up an editor rather than failing, even though I was in
the master branch.

Reviewers: jlfwong, alpert

Reviewed By: alpert

Subscribers: chris

Differential Revision: http://phabricator.khanacademy.org/D11055