Fix problems with edge snapping with duplicated vertices present
Fix snapping vertex marker when snapped to a segment
Fix issues with snapping and lat/lon coords
Added convenience method snappingUtils() to QgsMapCanvas

Map tools can use canvas.snappingUtils().snapToMap(pt) to do the snapping.