Fixed assertion check

Terminating nodes can now return a single node

Added the [GraphError] class. It is now an error to attempt to add an
edge with the same label as an existing edge, but with different start
and/or end nodes.

Updated tests to reflect this.