Change depthFirstOf to use List instead of Vector

I noticed that `depthFirstOf` is always called with a `toList` following it. I performed a quick Thyme benchmark between using `Vector` for appends vs. constructing a `List` and finally calling `.reverse` on it:

```scala
scala> th.pbench { (0 to 1000).foldLeft(List.empty[Int]) { case (xs, i) => i :: xs }.reverse }
Benchmark (163820 calls in 4.485 s)
  Time:    20.60 us   95% CI 19.58 us - 21.62 us   (n=20)
  Garbage: 6.519 us   (n=423 sweeps measured)

scala> th.pbench { (0 to 1000).foldLeft(Vector.empty[Int]) { case (v, i) => v :+ i } }
Benchmark (81900 calls in 4.628 s)
  Time:    42.28 us   95% CI 40.25 us - 44.31 us   (n=20)
  Garbage: 13.65 us   (n=580 sweeps measured)
```

Also, later calling `toList` on the `Vector` is probably not very cheap. I am not sure how often `depthFirstOf` gets called in typical summingbird workflows, but I figured it couldn't hurt. summingbird-core tests pass on my machine with these updates.