Add virtual destructors to Vertex/Vertices, fix return-type for Vertex::setVisited, implement adapter classes
Use references to pass shared pointers
Making progress, but still not sure how to make top sort return an ordered list of cells
Small adjustment to interface of core::DAG
Re-think how to handle Vertices. If I can get an iterator parameterized by the base class out of a vector parameterized

by the derived class, then I win.

Vertices is now just an interface, does not have any data members. CellsToVerticesAdapter implements that interface.
Storing a vector of CellToVertexAdapters in CellsToVerticesAdapter allows me to easily convert from Cell to Vertex and
back to Cell from Vertex. I just need to figure out how to adapt it to the interface which requires me to return an
iterator for a vector of Vertex, or how to change the interface or calling code so that it's OK to receive a vector of
adapters.

Changed all smart pointers to raw pointers to reduce code complexity for debugging. May change back.