Ref T4195. This pulls the central logic of HookEngine up one level and makes all the git stuff genrate PushLogs.
In future diffs, everything will generate PushLogs and we can hand those off to Herald.
Pushed a pile of valid/invalid stuff:
{F89256}
smart
Closed by commit rP2725586bafa0 (authored by @epriestley).