Introduced a new utility for computing the first shortest path and all shortest paths from a start to an end atom. This implementation replaces an existing static method in PathTools which has now been deprecated. Another helper class was added that simplifies the computation of all-vs-all shortest paths.

Conflicts:
	src/test/org/openscience/cdk/modulesuites/McoreTests.java

Change-Id: Ia6df8b06f3ac199be7ffe16c85c436da35656588
Improved terminology in javadoc and added @cdk.githash to production classes.
Corrected constructor visibility
Variable/method renaming and copyright update
replaced setAtom with a new method to encode a path of indexed vertices to a string. These changes cause no test regressions.
Commented out a line which could lead to a bug. This line was in the existing implementation but can cause issues when at molecule has multiple pseudo atoms with the same label. Also removed nPseudoAtoms, this is given by the size of the pseudoAtoms list.
Replaced atom iteration with integer for loops - this causes no regressions.
Replaced path tools shortest path implementation with the new AllShortestPaths. Removed redundant canonicalisation step. This patch cause a single regression due to multiple-shortests paths.
Removed redundant allPaths set (no regressions)
Removing temporary method
Reduced number of iterations. This path also resolves the previous regression.
Updated java doc and renamed getPaths() -> paths()
Allowing traverse() to return the set of paths. Once the traversal is done the set is wrapped in an immutable decorator only once and stored for access.
Change shortest path implementation to encode multiple shortest paths. This causes two regressions in the unit tests as both these molecules had multiple shortest paths.
renamed AllShortestPaths to AllPairsShortestPaths as this is the correct name for the problem
including preceding path conditional required by Vismara's MCB Union, also included the reference for the article.
Replacing array list with a linked list queue - quicker polling
resolves failing unit tests
removed annotation to missing test method
correct test method name