Graph implementation change

Graph implementation change:
- No longer keeping Vertex data
- Edges are no longer std::pair
- Edge size optimazation