move waypoint on last leg
replace pathDict with pathList since order matters, updateUserWaypoints

simplifies indexing since it's tied to geofence index (each path index
corresponds with the index of it's starting geofence in gfList).

pathMLS replaced by fullPathLS, a single line string since all the
paths are connected and shapely's project method is weird for
multi-linestrings. This improves assignment of initial geofences and
waypoints.

Add method updateUserWaypoints which allows users to pass through a
waypoint after they get near it.

Add removeFinishedUsers method which pops users out of userDict once
they reach the last waypoint.

Replace 'last' with 'prev' where reasonable.