Improved Null analysis

Fixed a bug, added a missing GetHashCode method and added early switch statement support.
Also, the null member reference issue now complains about PotentiallyNull.

Some previously ignored tests are now enabled and working.
TestAs still doesn't work. I'm still not sure it's a good idea to remove the "Unknown" value, because of "x.y.z" (in that case, even if y is a property that's known not to be null, then it would *still* warn about it.
Of course, we could always just make "as" return "PotentiallyNull" and the member access return "Unknown"...