Cleaned up usage of linked lists and added missing functionality.

- Added a list_remove_first() which is generally better than list_remove()
  provided you want to remove the first element.
- Added a list_append_list() to append and move all nodes from one list to
  another.
Simple compile fix.
Removed redundant debug printf.
Clean up white space.
Updated copyright year.