Generic Linked List Implementation in C