Use DLists

Benched at more than twice as fast as the `Vec` version.

Before merging this, I will probably attempt to merge your other pull request.