Add test for copy that overwrites.

More strings printed for all the test cases.
Add requirement for data objects to be dynamically allocated.

This makes for a much simpler destroy model of linkelist.
Comments for helper functions in test.
Always free the data objects on linkedlist destroy.

Remove the different behaviors depending on if the data object was allocated
inside of outside the module.  This was made possible by requiring data objects
to always be dynamically allocated.