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.
It was in Oren's change and I didn't realize why either until I hit his unit test. An error can occur in the `signal_groups.get` if the key is unhashable. For those errors, we want to use the default 'null' key.