Separate code into common render function (etc)

* Factored a lot of code out of agg/process_group_symbolizer.cpp into a common header, which can (hopefully) be used by the other renderers. 

* Merged a bit of the redundant column collecting code in with attribute collector.

* Fix: layout boxes were not being associated with "repeat keys" in the collision detector.

* Fix: It was only creating a new sub-feature if there were indexed columns. It would simply use a pointer to the original feature object if there were none (thinking that there is no need to bother copying attributes around). That was a problem since the code goes on to add the origin point to the sub-feature.