CListMoveFirst; more efficient than remove+insert.

Specifically, this avoids a call to free and then malloc for the same
size of data that we are conceptually moving.

This is in preparation for a CCache structure which I plan to put in its
own repo. Why separate repos? Because a *ton* of stuff can be built on
top of Array, Map, and List; I think this repo will remain focused and
clean by sticking to those containers, perhaps a single other repo can
hold containers built on top of them? Undecided for, beyond that this
repo will remain focused and small.