Graph - made addEdge returns added edge. addNode now passes Graph instance as owner to node it creates.
Node - introduced inEdges and outEdges fields. They are redundant, as one might at any time build the list from the information stored in graph, but we save some calculation time, sacrificing a bit of bits. Introduced owner field - graph, that contains the Node object.