Add TEST_CASE_CLASS and TEST_CASE_TEMPLATE

TEST_CASE_CLASS is the same as TEST_CASE_METHOD but with a static method.
TEST_CASE_TEMPLATE is the same as TEST_CASE_CLASS but instead of inheriting
from the class, it specialize the class (that is assumed to be a
template<typename>). This allow the class to keep its friends.