Several more changes:

* Remove the special tuple handling, it was trying to not reduce depth as we went "along" a tuple, but that goes badly in real world tests with gb_trees and gb_sets. In fact we just want to treat a tuple exactly like a list.
* Simplify and correctify a bit by only having one termination condition for depth.
* Add some more tests, and correct some existing ones.