Util.pm: add pure perl config file reader
Add two new functions that can read a Git config-format file
directly without needing to spawn any subprocesses:
* read_config_file: preserves ordering and duplicates
* read_config_file_hash: convenience when duplicates aren't needed
Previously the only option was to spawn a subprocess using
`git config --list` possibly with the `--null` option and parse
the output.
While the speed difference might not be noticed when only reading
a single config file for a single project, the difference when
reading multiple projects' config files is enormous.
Multiple config files can easily be read in less than a tenth the
time needed when spawning subprocesses. Typically only about 5%
of the time is needed compared to spawning a subprocess.
Signed-off-by: Kyle J. McKay <mackyle@gmail.com>