This patch is a first step towards restructuring the way we handle configs (i.e. the values we pass for example to -analyzer-config).
At the moment all configs are only implicitly defined by checking for them from some checker in the SA, which makes many aspects regarding the management of those options much harder than it should be. For example is it currently not really possible to recognize typos in the config keys that the user provided. We do some basic checking if the targeted checker is registered, but we don't do any checking if the given config is actually something that exists. This means that any typos in the -analyzer-config that aren't affecting the checker won't be reported or noticed by the SA. It also means that making a list of what configurations are available isn't possible at the moment without grepping the source code.
With this patch all configurations of the SA are moved to the Checkers.td and are emitted to the Checkers.inc. We also add support for adding/checking options to the CheckerRegistry and are using this to verify if the provided configuration values actually exist.