This cleans up the uses of `getAs` at quite a few places leading to more readable code.
Also prefer `V.isUndef()` to `V.isa<UndefinedVal>()`.
That being said, `Loc::isa<UnknownVal>()` and
`Loc::isa<UndefinedSVal>()` does not exit, since a `Loc`
is already more constrained than those.
Checking these makes no sense.