tlist: remove type arg from tlist_top(), tlist_tail() With the type canary, it's unnecessary. Though the implementation is a bit more awkward since they longer map directly through to list_top/tail.
cast, container_of, tlist: Fix warning with GCC 4.6: -Wunused-but-set-variable
tlist: typesafe variant of list module. I chose not to do the "macro creates set of routines" approach, as we can be almost as safe with a struct containing a pointer to the member type.