improve snapping in agg backend
Fix a number of snapping issues.  Incorporates ideas from #800 (see there for further discussion) and #1591.  This, unlike #800, doesn't change the snapping in a fundamental way, but it does help with text/image/marker alignment of snapped and non-snapped objects.
Add a test based on @pelson's example in #1591.
Merge pull request #1800 from mdboom/agg_snapping2

Agg snapping fixes (for the last time...?) :)