Framework for group symbolizer.

This includes XML parsing of group symbolizer and related objects and
process_group_symbolizer method in the AGG renderer. This also includes
code to collect group symbolizer indexed columns, create sub features,
and match them to group rules.
Added method to extract bounding boxes for symbolizers.

This is done by creating a fake 'virtual' environment at a fake
point and running the symbolizer render code. The actual render
is saved in a thunk for after the group layout has been done.
Added code to render frozen thunks.

This renders the saved information from previous calls to the
bounding box extraction code, offset by some amount which should
be determined from running the `placement_finder`. Note that this
doesn't implement that bit, just the rendering.
Find placements and render in process_group_symbolizer.

Create a group_symbolizer_helper for group placments, and extract some code from
text_symbolizer_helper into a base class to share with group_symbolizer_helper.
Also, move tolerance_iterator into its own header file. Use helper in
process_group_symbolizer to find placement positions.
Added test for group symbolizer, fixed segfault.

Segfault was due to `glyph_position` structs keeping a pointer to
`glyph_info` objects which went out of scope at a different time.
The (rather ugly) fix for the moment is to copy that information
into the thunk object.
Extracted a lot of code from agg render process_group_symbolizer.

Move a lot of processing into a common process_group_symbolizer function.
Also, extract column collection out of process_group_symbolizer function.
This will reduce duplication needed for other renderers.
Added more tests for group symbolizer.

The first test shows how an obstacle under the group being displayed
will cause the whole group to not display. Above is an replica of
the same layout using non-grouped symbolizers, which shows that
only the parts which intersect the obstacle will not be drawn.

The second is a line placement test, which just tests placement
of groups on a line with variable spacing.

The third is a test of repeat key in group symbolizer.
The test shows two items with different repeat keys ("foo" and "bar")
and rows of other group symbolizers sensitive to either one. The
reference images show that the "bar"-sensitive rows are displaced
by the "bar" item, but not the "foo" item.
Cairo renderer implementation of group symbolizer.

This uses the renderer_common header to do most of the heavy
lifting, but otherwise is very similar to the AGG renderer
implementation.

Add cairo ref images for group symbolizer tests.
Implement debug symbolizer for Cairo. Update tests for debug symbolizer.

Debug symbolizer is useful, and used in a bunch of tests. This
adds debug symbolizer support for Cairo to make it closer to the
capabilities of AGG.

Adding debug symbolizer for Cairo meant that red boxes appeared in
many of the visual test outputs. This commit replaces them with
the output, after visual inspection. They should now be closer to
the output of the AGG test cases.
"Implement" group symbolizer for SVG renderer.

Note that the "implementation" for SVG renderer is the same as
for other symbolizers there - i.e: empty.
Grid renderer implementation for group symbolizer.

This uses common process_group_symbolizer for most of the work.
Add reference grids for visual tests.
Python interface for group symbolizer.

Boost::Python interface, and added a test to check that it works.
Looks like it fails at the moment due to other changes - a lot of
the python symbolizer tests show the same thing.
Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer

Conflicts:
	include/mapnik/attribute_collector.hpp
Add shield symbolizer support in group symbolizer processing.

Update some test cases to use ShieldSymbolizer instead of point and text.
Merge branch 'expr-v2' of github.com:mapnik/mapnik into expr-v2-group-symbolizer

Conflicts:
	src/text/placement_finder.cpp
	tests/visual_tests/test.py
Merge pull request #2160 from MapQuest/expr-v2-group-symbolizer

Group Symbolizer