NullValueAnalysis: Added support for logical or expressions and unary expressions.
NullValueAnalysis now supports while loops, assignment statements and empty statements.
Tweaked the algorithm to be a bit smarter (but also slower, since each node might be visited more times now).
Added tests.