Bugfix: Multipolygon code was possibly accessing stale data.

In rare occasions when a multipolygon had closed ways creating an inner ring
with different tags than the area and a buffer was full and had to be resized,
the code would reference a stale location of that buffer. Fixes #47.
Refactoring of filter handling in multipolygon code.

Initialize the filter only once and simplify usage.
Avoid bogus g++ warning.

g++ reports "control reaches end of non-void function [-Wreturn-type]" because
it doesn't detect that the switch covers all cases. Fixes #29.