Implemented a heuristic enhancement that improves the cost efficiency of the algorithm's generated solution.

The program begins by applying Prim's Algorithm from the starting city as origin to infer a minimum spanning tree.  The tree is conceptually Eulerized and a depth first search from the starting point yields an initial cycle, C.  The forward edges in this graph are desirable because they were selected based on the greedy minimization strategy employed by Prim's algorithm, but the DFS back-edges involved in this traversal are a potential liability because they contribute nothing but cost.

The heuristic implemented here leverages an observation that every back edge in the second traversal only re-visits cities previously seen and so can be replaced by any other segment that begins where the first backstep originated from and ends at the vertex where the next forward edge is due to occur.  The heuristic identifies every run of back edges, the aforementioned end points.  From there, it checks for direct adjacency, the shortest path between any two points in Euclidean geometry.  If no direct edge exists, a breadth first search is performed next and is constrained such that no alternate path more costly than the original DFS back edges were, preventing the algorithm from getting computationally bothersome in the event that no better solution is readily available.  Without a reasonable upper search bound, searching for better way to deal with back edge segments can mean eitther wasted resources, or opportunity costs.

There is another check in to follow that will remove the copious debug messages from this implementation, and there is a possibility for some minor execution time improvements and/or variations on the design theme, but those will be implemented in

ard edge is set to reach.  Before accepting the back-stepping path verbatim, the heuristic first checks for an adjacency from t
he back-stepping origin to the next forward
Minor tweak to tsp.html to silence a WebStorm compilation warning.  It doesn't like the fact that any of the score variables were initialized with values that could never have been read before they get changed.  Removing the initial value has no effect on the harness or programs running within it and contributes to overall contentedness as a developer.