Make two list-processing functions do nothing with an empty list.

This just makes these functions easier to understand all around.  In
the case of _token_list_append_list this is an actual bug fix, (where
append an empty list onto a non-empty list would previously scramble
the tail pointer of the original list).
diff --git a/glcpp-parse.y b/glcpp-parse.y
index b2684d0..ba79a61 100644
--- a/glcpp-parse.y
+++ b/glcpp-parse.y
@@ -666,6 +666,9 @@
 void
 _token_list_append_list (token_list_t *list, token_list_t *tail)
 {
+	if (tail == NULL || tail->head == NULL)
+		return;
+
 	if (list->head == NULL) {
 		list->head = tail->head;
 	} else {
@@ -1218,7 +1221,7 @@
 	token_list_t *intermediate, *list_orig = list;
 	int i, need_rescan = 0;
 
-	if (list == NULL)
+	if (list == NULL || list->head == NULL)
 		return;
 
 	intermediate = _token_list_create (parser);