Removed global state of person list

FamilyTree class now refers to its own graph for person matching.
Implemented VertexEdgeContainer

Implemented wrapper class to join a vertex and some number of edges
Switched graph to store edges with nodes

Removes O(n) edge search, in favour of an O(log n) vertex search and
then O(n) edge search over a significantly smaller n.
Removed unused usings.
Now correctly handles deleted nodes and loops

Enumerator will no longer expose deleted nodes, and will handle loops
more intelligently
Added delete protection (and also comments)

I can't believe the official github client doesn't let me do selective
commits, else this would be split. pretend it is.
Added test for removing verticies
Added implementation justification