Rewriting my dfs code, completely.

My DFS code is terrible! It is horrible, terrible, no good very bad. The
issue is that if you look closely at what the "queue" was doing, it was
storing the entire sequence up to that point, basically walking down the
tree expanding one level out from a strict dfs.

I'm rewriting it to be a better, less memory-intensive dfs. Not that
it's strictly necessary (I mean, I'm not hurting for memory or anything)
but The Algorithm Is Totally Wrong!