This update is in Ref #2649. It provides an update to markers and their processing such that:
* All shared_ptrs are no longer required around markers
* Markers are now const
- splits process functions into new cpp files to reduce peak compile memory usage
- drops cairo_renderer_base to match agg_renderer design
- only cairo_ptr is accepted so cairo_surface_ptr must be converted into a context first
- fixes -fvisibility=hidden