Adds #add_first_node

The #initialize, #push_bottom, #push_top methods repeat the same operation if the linked list is empty. This change moves this operation into a helper method #add_first_node to make it DRYer.
Adds #add_first_node to SinglyLinkedList

Same change as recently made for DoublyLinkedList; see previous commit message.