This patch contains very little logic but touches a lot of lines.
Now that we're confident that all non-checker configs are gathered, I went ahead and did some actual changes to how AnalyzerOptions works.
This patch is a proposal to evaluate all config options (and possibly emit warning about them) at the beginning of the analysis, rather then whenever a getter function is called for it. This is done by changing the generated Optional<TYPE> fields' accessibility to public, evaluating all options as soon as the ConfigTable is assembled, and removing generated getters, as are they are no longer necessary. Now, every single public function (except parseConfigs) is const, as should AnalyzerOptions be after options are parsed (coming soon™ in a followup patch).
The removal of those getters implied however that every single use of those getters had to be changed (Opts.shouldDoThat() -> Opts.ShouldDoThat.getValue()), and I got to simplify the def file. I clang-formatted it, and since I don't expect the format to change for a good long while, I think it should be clang-formatted in the future whenever.
The actual the actual implementation of warnings is coming soon™.
This check should and will be moved to parseConfigs in a followup patch.