Flip order of intersection test.

Previously, the intersection test would run through the feature's
geometries in order and terminate early, whereas the behaviour of
the 'first' intersection we want is the first *admin area* and the
order of the geometries within the feature shouldn't matter.

Also split the `updater` from the `intersects_iterator` in an
attempt to separate policy from the intersection test.
Factored out functions in adminizer.

This makes it a bit easier to read what's going on.
Added collect mode for adminizer.

This collects together all the parameter values for all the admin
polygons that a feature's geometry intersects.
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.
Better comments in adminizer.
Merge remote-tracking branch 'origin/adminizer' into adminizer_intersection_modes

Conflicts:
	src/post_process/adminizer.cpp
	test/adminizer.cpp
More better comments.
Merge pull request #24 from MapQuest/adminizer_intersection_modes

Adminizer intersection modes