fix MSVC compiler warnings

this fix fixes this MSVC compiler warning:
warning C4800: 'int' : forcing value to bool 'true' or 'false'
(performance warning)
enhanced support for nullptr

these fixes enhance the support for C++11 nullptr/std::nullptr_t; now
you can write something like this:
std::exception_ptr ex;
CATCH_REQUIRE(ex == nullptr);
and
std::unique_ptr<int> ptr;
CATCH_REQUIRE(ptr.get() == nullptr);

The issue with the const_cast<T&> is that you cannot cast a
std::nullptr_t to a non-const-ref.