redesigned node and edge classes

Node now contains a list of edges as opposed to nodes. Edges contain the
node it's connected to.  This probably will change since I don't think
we need a directed graph.