Non hardcoded keys generated outside of click

A significant re-write of the intrinsic security code that allows the
creation of security keys outside of click. In this case, the xianet
script calls read_topology, which creates new keys for all the devices
and assigns them addresses based on hashes of their public keys.
The keys are created in a subdirectory "key" and they must be present
for the devices to come up correctly.

A bunch of code cleanup will follow.