Split into multiple implementations

-std is just playing around with the existing public Dlist API.

-enum is an implementation with enums.
-struct will be a struct-based implementation.