Simple graph implemented w/ unit tests

This is logically equivalent to ```if not (self.has_node(n1) and self.has_node(n2))``` which at least to my mind looks cleaner.