This patch is an NFC. Mostly moving code segments here and there. Also a few renaming and minor refactorings.
Summary:
Introduces an API for interacting with the modeling part of the CStringChecker.
Using this API other checkers could query and potentially remove/invalidate information about the cstring length of an associated memory region.
This patch significantly reduces the complexity of the CStringChecker.
Introducing a modeling layer the hierarchy will look like this:
CStringModeling (infers cstring length from string literals, invalidates, updates, etc.)
\__ CStringChecker (checker with several filter options)
\__ NullArg (filter option registered as a distinct checker)
\__ BadSizeArg (same...)
\__ OutOfBounds (same...)
\__ many more...It is questionable if we want to keep such a hierarchy or not.
Either way, that should be done in a different patch - I suppose.
Other common checker functionality folders and headers do not require extra CMake support long ago. I think when we need such support, we could define it later, so that you could revert this.