Refactor DList

* Make DList lie less about safety
* Document safety assumptions
* RawLink<Node<T>> -> RawLink<T>
* Simplify Items to only use RawLinks
* Add internal utility methods to reduce duplication
upgrade DList's Items iterator to cursor