improved run algorithm
request new run if returned run is out of tolerance
if all returned runs are out of tolerance then return run with min error
reduce number of route requests
keep track of leg order
remove gpx as top-level workspace item