Refactor the parsing and processing of configuration options ... just a bit ...

Summary: ... and fix some bugs too :)

I was running into problems where it seemed like `-v` overrides were not being respected. So I wanted
to make sure that we had one goto place for parsing, processing and binding of configuration opens,
for easier debugging. This ended up into a bit of a refactor of our configuration option process.

Found a bug in `IniSetting::Set` where updates were not happening to existing pairs. This might
have been the biggest find during this whole process.

The second biggest find was probably the sort of subtle re-parsing of ini files for extension constants.
Right now we parse the whole file again; thus un-overriding any overrides that were given at the command
line. Needed to be a bit more clever on how we do this.

Reviewed By: @ptarjan

Differential Revision: D1524620