Prototype Dlist rewrite with cursor

The reason I'd like to see `cursor_back` is because I think that `Cursor` wrap-around should be an implementation detail. When we get a generic `Cursor` trait, I would expect it to have a similar clause to `Iterator`, saying that it doesn't make sense to go past where the `Cursor` returns `None`. It would be fairly weird to expect things like `TreeMap` or `Vec` to implement this same sort of wrap-around.