Refactoring in preparation for returning split features.
Added splitting to adminizer.

Note: the splitting algorithm is pretty horribly suboptimal. It
works and may not be a problem in practical use. But, if it
becomes an issue then we can either lazily instantiate the
`inside`/`outside` `mapnik::feature`s (because most geometries
will be entirely inside or entirely outside). We can further
optimise where the admin polygons completely cover (or are
completely disjoint from) the query area. Finally, and most
difficult, would be to adapt the Mapnik geometry types rather
than copy that information into `boost::geometry::model` types.