Fix #884: Crash (MatchError) in optimizer on 20 partests.

NothingType is actually a perfectly reasonable type for the
receiver of a method call (and NullType as well). We have to
take care of it in a sensible way.
Short-circuit NothingType in the rhs of a binding (dce).
Do not discard side-effects of lhs compared to null.
Merge pull request #885 from sjrd/fix-partests-optimizer

Fix some bugs in the optimizer