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.
Verify that zero-area rings are still removed.
Update us-10m.json.
Define --filter modes in bin/topojson.

The internal API uses a preserve-attached option instead.
Upgrade to shapefile 0.3.
Simpler shapefile API.
Merge branch 'new-shapefile' into 1.5
Merge branch '1.5'