Previously we often had two sets of events, one in the network
package, and then another in the events package. We now only
have one, in the events package. Events now have a public API,
with minimal deps. There's an implementation package which has
the dependencies. This allows the network package to generate
events, without have a circular dependency on the events
implementation package.
* added allow traversal flag
* Added test to verify a single router connection that is marked untraversable fails path creating
* Updated default cost to be one step above the threshold to avoid overflow.
* Updated checks to only care about middle routers. Fixed relevant unit tests and added test with untraversable middle router.
* Refactor allowTraversal to be flipped to noTraversal
* default noTraversal to false
* Added cost to routers and relevant persistence and path checking.
* removed router cost from config
* changed cost to be required on update
* removed some import reorderings and added fingerprint to be required
* missed one line