Renamed nodes in GraphSearchTests

Removed the tautologies in GraphSearchTests (node1 -> node)
Refactor GraphSearch

* Add some explanatory methods
* Remove duplication in isPartOne/isPartTwo. These are replaced with
isPart(part, args).
* Improved variable names
Refactor error checking

Errors and appropriate exiting are wrapped up in printErrorAndExit. 
There is error checking for the minimum number of neighbours in the main
method now