fix bug whereby a series of sets and gets can result in a split doubly linked list

also added code to verify that the DLL is consistent at the end of each test
docs docs docs
more descriptive var names for DLL structure

not conventional but I found myself trying to understand the patch David
sent in and I drew several blanks. hopefully this is more
understandable. also more comments.
slightly more informative readme