properly handle required/optional args

[fixes #330]
Merge pull request #333 from hartzler/python-admin-args-fixup

properly handle required/optional args
Should stop the trace when it stalls because of NodeStore breaking a path.
split NodeStore into public/private structures
Removed some new-pathfinder stuff which didn't work out.
Split out NodeStore administrative functions to NodeStore_admin and paid down technical debt with proliferation of #include NodeStore_pvt
Use path with highest reach, and use slightly different reach definition.
More testing.
More testing.
Use a value definition that gives reach and path length equal weight.
Whenever a lookup is done, ping all routes that have not recently been pinged. This hopefully keeps reach numbers relevant.
Not good at git.
Reapply changes.