My implementation of the doubly linked list (with some neat extras)