Prototype Dlist rewrite with cursor

I was discussing this with @huonw on IRC a while back, and aliasing `&mut T` and `*mut T` can actually lead to problems.