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.