Updated Graph class API
An update to the Graph classes' functionality, as well as some other miscellaneous things.
New Features
- Graphs can now be instantiated from adjacency lists and adjacency matrices.
- New `Graph.equals` method for graph comparison.
- New `add_edges` and `add_vertices` methods for adding multiple vertices or edges in a single method call.
- Pickling functionality.
- New `add_edge_attributes` and `add_vertex_attributes` methods for adding multiple attributes at a time to a single edge or vertex.
- Split the functionality of `add_edge` into `add_edge` and `set_edge_weight`
- Change the order of parameters in `cg.graph`