Implement linked list with unit tests

A basic implementation of a singly linked list. I decided to maintain a tail reference as it's a good practice, especially if other data structures, namely a queue, are expected to inherit from it.