Required macro as for loop (with issues fixed)

I riffed on pjohnmeyer's fix for REQUIRE that used a for loop to get the desired syntax. I primarily fixed two issues:
(1) no more unreachable code in the for loop. 
(2) code appearing after a failing check in a REQUIRE block will no longer execute.

I used a RAII object instantiated in the for loop declaration to install a decorated TestReporter (ThrowingTestReporter) to achieve the desired behavior and eliminate the for loop shenanigans. 

My main concern now is whether we should use UnitTest::AssertException for this or use a new exception. The changes to UnitTest++/CheckMacros.h could potentially be a breaking change to any existing code using AssertException in unexpected ways. 
I could have avoided using friend here and introduced a getter/setter instead. I wanted to avoid signature changes to existing classes exported in shared libraries. (This is admittedly probably a silly concern, and I'm happy to change this).