Rewrote can_push to also do zero forcing and renamed it push_zeros.
A few minor bugfixes to the push_zeros function.
Implement the "better" algorithm for Zq that lets you color vertices in rounds as the algorithm proceeds.
Create a class for dealing with inertia sets.
Calculate inertia sets based on decomposing a graph at cut vertices.
Add containment testing for inertia sets.
Change the inertia lower bound functions to return Inertia sets.  Also let Inertia Sets union with sequences of tuples.
Better documentation for zero_forcing_wavefront.
Attempt (unsuccessfully!) to set nice defaults for inertia set plotting.
plot the line corresponding to no zero eigenvalues in the inertia
Keep track of an optimal play for black in doing Zq forcing.
Added a push_zeros_looped function which uses the loop rules on vertices specified as looped or unlooped.
Fix a wrong variable name in push_looped_zeros
Generalize Z_pythonBitset to take a push_zeros function (and optional arguments) so that we can do Zq with arbitrary zero forcing rules.
Add Zqhat and Zq functions which calculate Zqhat and Zhat
Refactor some names.
Generalize the inertia_lower_bound functions to do Zq and Zqhat lower bounds.
Record TODO for making a wavefront looped algorithm.
Prune more aggressively when computing Zqhat
Change name of Zq function to Zq_compute to avoid name conflicts