Get Config for a request from the GitilesAccess

Allow for per-repo configuration by reading config values on each
request rather than in servlet constructors. Reading a single config
value is cheap enough, but parsing configs from the on-disk format is
potentially expensive; leave this optimization up to the
GitilesAccess implementation.

Currently, in DefaultAccess, we just pass in the global config, no
per-repo config. This is simple expediency because Config objects
don't trivially support merging multiple configs except by
"inheritance".

Because of the way we were caching per-config maps of extension to
ArchiveFormat, this requires some more substantial refactoring to
that class and ArchiveServlet.

Change-Id: Ia1fcf97ecc71571537402629f49e8a65128a105e
18 files changed