[analyzer][NFC] Prepare visitors for different tracking kinds
When we're tracking a variable that is responsible for a null pointer
dereference or some other sinister programming error, we of course would like to
gather as much information why we think that the variable has that specific
value as possible. However, the newly introduced condition tracking shows that
tracking all values this thoroughly could easily cause an intolerable growth in
the bug report's length.
There are a variety of heuristics we discussed on the mailing list to combat
this, all of them requiring to differentiate in between tracking a "regular
value" and a "condition".
This patch introduces the new bugreporter::TrackingKind enum, adds it to
several visitors as a non-optional argument, and moves some functions around to
make the code a little more coherent.
Differential Revision: https://reviews.llvm.org/D64270