use variadic macros to make tests with templates code easier

Hi, would you consider modifying some of the macros so that they will work more easily with template code with multiple arguments. For example, a check like this

REQUIRE(f<A, B>() == 3);

which wouldn't work now unless wrapped with an extra set of parenthesis could be made to work without any trouble by using a variadic version of REQUIRE