Remove dependency on `python-graph-core`.

The maintainer has removed 1.6.2 from the internet, and it's not cached on PyPI. I've replaced the one thing sparkplug uses -- dependency analysis via topological sort -- with an implementation of a known algorithm.