Homestyx hydra

R1:3386920971b8

Add Herald support for blocking ref changes

Summary: Ref T4195. Allows users to write Herald rules which block ref changes. For example, you can write a rule like `alincoln can not create branches`, or `no one can push to the branch "frozen"`.

Test Plan:
This covers a lot of ground. I created and pushed a bunch of rules, then looked at transcripts, in general. Here are some bits in detail:

Here's a hook-based reject message:

>>> orbital ~/repos/POEMS $ git push
Counting objects: 5, done.
Delta…
Repository: R1 hydra
Commit Date: Dec 17 2013