Add graph data structure - work in progress

Add the ability to add, remove and update a Graph data structure, which
includes nodes and edges. The ability to update is left for the user to
manipulate, but its rather trivial, so no specialize function was
written for that.

An adjacency list and matrix implementation would be very handy to
determine if one node was connected to another.