Refactoring names to standard use of new/free/push

Instead of create/init, destroy, append
Refactoring location of typenames list, function/forward declarations

And new_token() helper because the naem was confusing after the last
refacto
Adding tree_push_child() and refactoring tree_new_group()
More info during list testing
Updating included headers in libraries
Better error reporting in tree library
Returning list_node for list push functions
Slight update to tests
Refactoring list_node_new(void *data) to take data
Refactoring list pop functions to use list_node_unlink
Refactoring list pop functions to use list_node_link
Refactoring list node link and unlink functions for clarity
Implementing list_insert(pos) and refactoring push functions to use it
Exposing list node link and unlink functions

Refactoring size adjustment into them, requiring passing of list.

Also refactoring peek functions to use list head and tail functions.
Implementing list index and refactoring insert to use it
Implementing list remove and refactoring list index

List index now acts like a deque and iterates from the end closest to
pos. Where functionality was wrapped into other functions, extraneous
checks on self == NULL were removed. A unit test failure message was
fixed. The list node link function now links b onto c, rather than onto
a (that is, links before, not after).
Updating tasks