Moved the common stop types to the topology data model .py file.
A raft of changes in order to speed up the calculation of auto-stops, and
segments.

route_geom_ops.py
 - get_next_stop_and_dist() now takes an optional last_vertex input param,
   and returns same as an extra.
   - If this is passed in, search starts from that last vertex passed,
     speeding up quite a bit.
 - to support this, advance_along_route_to_loc() now reports vertexes passed
    in getting to desired position from current.

motorway_calcs.py
 - improved the stop_on_motorway() detection speed by using the last_vertex
    caching ability.
 - Improved the segment_on_motorway detection alg via the ability to ignore
    short segments as not on motorways.

create_network_topology_segments.py
 - Added ability to define a minimum segment length, below which stops will be
   skipped
 - Used the vertex caching to speed up;
 - Added skipping of zero-length segments where stops are co-incident;
 - Added better detection of error cases, like going too far (in a loop)
 - Added potential handling of re-visiting the same stop multiple times.
    This opens the door to generating routes with loops if this was desired
    (would mean changes to the route_defs format though to have to order
    segments in time in a route).

create_network_topology_auto_stops.py:
 - Significant speedups to all the auto-stop types:-
 - intersect self:- used both the vertex caching to speed up on-motorway
   detection, and various bounding boxes and stop subsets to reduce slow
   Intersect() calculations needed
 - transfer to other networks:- re-ordered to take advantage of routes in the
   outer loop meaning can pre-calculate select set of stops associated with a
   route. Also, bbox tricks to reduce need to use Intersect()
 - fillers:- using vertex caching helps major speedup.
 - Improved error detection in these algs too, like fillers, to warn about
    missing stops at ends of routes etc.