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.
Revert support for sorting NaN values.
Version 1.2.0.
added support for union of multiple filters
fixed bug - needed to expand hi0/lo0 range to include all ranges
Fix groupAll() after union reset.

This is also somewhat more efficient for large datasets, since it
recomputes group values from scratch rather than selecting all values,
removing them, and then adding them again.
Union of filters: return the dimension.

This is for consistency with non-union filters.
Add test for union of overlapping ranges.