Move klist to purely-header library, some interface changes, and
slist/dlist tests