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.