F/rewrite groupset

Added groupset rewrite object and added tests for rewrite functionality.
That's a tough one. That was the original idea, but with that approach, we would have to touch value-pairs, and have to deal with the nested template function problem when using the $_ macro. The current one is a much leaner solution, the unit tests are in place so we can still refactor it to move the functionality to value-pairs if others request it. I discussed it with algernon, and we agreed on that we should use this simpler solution for now.