Prototype Dlist rewrite with cursor

Would it make sense to expose nodes and let users insert and remove `Box<Node<T>>`, thereby saving allocations? This would presumably be separate methods, like `insert_node`, `remove_node`, etc.