Allow a standard library to implement conditional noexcept for optional and unique_ptr hash functions.
These tests were unconditionally asserting that optional and unique_ptr declare throwing hashes, but MSVC++ implements conditional noexcept forwarding that of the underlying hash function. As a result we were failing these tests but there's nothing forbidding strengthening noexcept in that way.
Changed the ASSERT_NOT_NOEXCEPT asserts to use types which themselves have non-noexcept hash functions.
Instead of noexcept(false) use the just newly added macro TEST_NOEXCEPT_FALSE, which is C++03 friendly.
Note: A lot of tests have a // UNSUPPORTED: c++98, c++03, ... line at the top. If you don't see that the test is expected to work in C++03, Even if it's a C++11 library feature such as unique_ptr. (Libc++ does crazy things to support unique_ptr in C++03)