Prototype Dlist rewrite with cursor

Unfortunately, this still isn't safe:

```rust
let raw = {
    let mut node = Node::new(1u);
    Raw::some(&mut node)
};
// Now the node is dead. However, we can still access it.
let ref = raw.as_ref().unwrap();
```