Track max extent for replay and limit draw instructions outside that extent

Currently, draw instructions for every coordinate in a geometry are created regardless of how much of the geometry is rendered.  This results in performance problems for large/complex geometries (streams, water bodies, administrative boundaries, etc. - see #1674).

An alternative is to track and respect the extent for replay groups.  We don't need general purpose geometry intersection methods to handle this.  Instead, it is possible to efficiently determine which segments of linestrings and polygons are required to maintain correct rendering within the replay group's extent.