create all nodes in network first using all values from the agents dict

fixes #16 

the agents are all created and added to an agents dictionary where the key is the agent key.

the network then creates all the nodes (without any edges) by populating it with all the VALUES of the dictionary, in this case all the agents.

This fixes the issue of singletons being dropped from the network of agents when edges are created.