Add group.remove for removing groups.

Calling group.remove() removes its event listeners so that it can be
garbage collected.

Fixes #55.
Add dimension.remove for removing dimensions.

Calling dimension.remove() removes its event listeners and clears its
filters so that it can be garbage collected.  This also removes all
groups associated with a dimension.

Fixes #10.
Add tests for removing dimensions and groups.
Support filtering by arbitrary functions.
Fix typo in comment.
Merge pull request #1 from square/1.2.0

pulling in some of the 1.2.0 updates a little early, really need some of the features