Remove incorrect NULL checks.

In well-defined C++ code references can never be bound to dereferenced NULL
pointers. Thus, compilers can assume that the address a reference points at is
always non-NULL. The reason is that if this happens, the behavior is undefined
from now on. Thus, the compiler can do as it pleases. As a result, compilers
might simply remove checks like the ones removed here.

clang's "-Wtautological-undefined-compare" warning option can be used to spot
such issues.
Merge pull request #19 from lordhoto/undefined-behavior-check

Remove incorrect NULL checks.