Reorganized CircularList implementations to subclass an abstract CL.

The code will be identical except for the underlying list implementation.
Why implement twice?