CXX-186 Add group command helper

Adds the ability to use the group command in a convenient way.

The `group` method takes a key object where as the `groupWithKeyFunction` method takes a key function.