Groupby2

Main purpose is to add kwargs to `for_each_group` to allow needed functionality in the counter.

Please review the tests, I have remove a test (simply returning at the beggining) and have commented about the test. The test fails, and I don't see how it wouldn't. I have left comments.
This passed fine because it checking the "checked_groups". But there should be another assertion for:
self.assertEqual(['bar', 'pity'], block._groups)