removed a test stub I couldn't make sense of
starting to break the Graph class into pieces,

by extracting an interface to be used by constraints.
moved more of the checking in the constraints trait
implemented circle detection as a constraint
replaced check for cycles with the CycleFree constraint
fixed cycle due to misplaced test
renamed test class to the apropriate name