GreedySolution is a simple solution that looks for the next nearest node.
GreedyManhattanSolution does the same thing, but approximates the distance between nodes using the Manhattan method.
GreedyHealingSolution takes the best of the previous 2 solutions and attempts to "heal" it incrementally, one node at a time
Fixed a bug in Main.java that causes NullPointerException