Updated the ASSERT hooks with an implementation for assertion_failed_msg.
Only include output_iterator_tag for Visual Studio 2010 and forward.
This is needed for its debug mode to compile due to some troublesome
Standard text.
Somehow multi_array was picking up enable_if/disable_if from the ether, but
the ether is now gone.  Explicitly including the needed headers now.
fixes #8368

Changed a macro to use ifndef rather than if to avoid warnings.