Add --filter; deprecate --allow-empty.

There are now three filtering modes. The "none" method does nothing, equivalent to the old --allow-empty. The "small" method removes small rings, equivalent to the old --no-allow-empty (the old default behavior). The "small-detached" method removes small rings that are not attached to any other ring. This is the new default behavior, as it is more conservative in removing polygons: it will remove islands and detached holes, but it won’t remove small municipalities and leave unexpected gaps in larger areas. Fixes #139.

A slightly better implementation would detect the total area of all connected rings, allowing --filter to remove all of the rings if the combined area is still less than the threshold. For now though, this is still an improvement.

To-do:

- [x] verify zero-area rings are removed with --filter=small-detached, even if coincident with another ring