Tests and basic documentation

@davisagli We have added a basic README (based on some of your previous explanations of the package), some docstrings on key methods and a couple of tests.
Thanks for the feedback David. As far as we can tell, we haven't changed anything that would cause that. Previously, 'groups' was looked up from the kwargs, and defaulted to set() if not provided.

Under our changes, we have just moved groups to an explicit kwarg, which if not provided defaults to set()

Am I missing something?