We now manage routing table actions using dedicated functions run on
either registry or services in the registry.
Routing table now uses Route.Hash() instead of maintaining its own hash
struct filed which previously performed these operations.
Various names of variables have been changed to make them more concise.
In order to differentiate between intialized and other states we
introduced a new state: Init. The router is in this state only when it's
created.
We have cleaned up router status management which is now handled by
manageStatus function only.
* Changed router interface to return Advertisement channel
* Added default gateway route to the routing table if supplied
* Watch table for updates and advertise to the network
* We hash the routes on 3-tuple (Destination, Gateway, Network)