refactor and explain route calculation
This was rather impenetrable and had some significant code
duplication. So add some words of explanation, and refactor to remove
the duplication.
Some fly-by fixing of minor bug too: buildUnicastRoutes failed to
exclude asymmetric connections from the first hop.
fix typo
Merge branch 'master' into refactor_and_explain_route_calculation
Don't splode in error type checks if given nil

These two testing utils assumed that they got an error, and checked
its type; however, the most likely failure case is that there's no
error (i.e., nil). In that case they would cause a NPE panic.
Merge pull request #256 from squaremo/dont_splode

Don't splode in error type checks if given nil
Merge pull request #253 from rade/refactor_and_explain_route_calculation

LGTM, allowing that the results are unbalanced (and unchanged in this respect from before this PR)
Cosmetic changes applied by