Give DList correct reference semantics

Last attempt at this.

This gives DList that classic reference semantic we all know and love and *expect*, instead of... whatever it currently was using.

The implementation uses "pointer to sentinel of cricular list" implementation. I've kept it basic.