clean up unused code
refactor circuit graph for Python into its own module
Change strategy for handling gnd node in Python:

Previously we used undirected graphs and attempted to "monkey patch" the gnd node
so it would return an empty out_edges() list.  Unfortunately the algorithms are
implemented in C++ and don't recognize the changed Python-level implementation.

Instead, use a directed graph (at the cost of double the edges, approximately),
but only use a single edge directed into gnd for components that attach there.
add resistive loop detection example in Python