Major restructuring of topology info

Forward declare all structs
Add path and pair
Add array of subnet pointers to router
Add array of router pointers to subnet
A pair is two directly connected subnets
A path is one or more pairs
A router is one or more paths
Add tree of pairs to topo
Add tree of routers to topo
Add void **args to topo to use for twalk operations
Add compare_u64 function
Add router to topo
Add subnet to topo
Add subnet to router
Add router to subnet
Add pairs

This commit compiles and runs, but probaby leaks lots of memory
Cleanup routers when receiving DEL msg

Remove from topo->routers tree when count == 0
Remove from subnet->routers array