Fix stale dates in committer field

The server's PersonIdent cannot be held by a singleton such as
SubmitStrategyFactory.  Holding it would retain the timestamp of the
first merge in this process, with the time forever stuck in the past.

Instead use Provider<PersonIdent> so Guice can defer creation of
the server's identity until it is required to write a new commit.
This allows the current date to be injected into a newly created
PersonIdent, keeping the committer field current.

Bug: issue 2773
Change-Id: I9e5edd41e42a702ed8541cfef57660204a8c5b57
(cherry picked from commit efcd3168a2f2053597ac467d53f254500de6c1ed)
Add missing call to ref-updated hook for submodule updates

Add call to ref-updated hook when a project ref is updated because of
submodule subscription.

Bug: issue 2831
Change-Id: I176ea044fe4bbb2d5abc596b3da6dcd0a8d3e12f
Merge "Add missing call to ref-updated hook for submodule updates" into stable-2.9
Support for CSharp syntax highlighting

Bug: Issue 2848
Change-Id: Ibdc6a5c678c4340570d016d59545a40f6fabdf91
(cherry picked from commit 90459db79d9e284baf047ce7ad99241535470eaf)