Test group

Hi Martin,

What do you think about grouping tests? I have experimented with this a bit.

I have added a test_group struct with a vector<test> member for tests in the group. 

There are additional overloads of run() function for the test_group and templated run() for test or group ranges.

A run_result struct is used to store number of failed tests and their total count. And all run() functions return run_result.

I see 2 disadvantages:

* test struct memebers lose their constness, since the struct may be stored in a std::vector.
* Too many curly brackets for initialization. I have tried to decrease them with additional macros :-/

Regards,
Pavel