node_list: Fix memory corruption

The corruption occured if you removed the last node from the list
and later add a new node to the list.
diff --git a/libcnary/node_list.c b/libcnary/node_list.c
index 2a9cf90..78f450e 100644
--- a/libcnary/node_list.c
+++ b/libcnary/node_list.c
@@ -59,7 +59,10 @@
 	node->prev = last;
 
 	// Set the next element of our old "last" element
-	last->next = node;
+	if (last) {
+		// but only if the node list is not empty
+		last->next = node;
+	}
 
 	// Set the lists prev to the new last element
 	list->end = node;
@@ -129,6 +132,9 @@
 				node->prev->next = newnode;
 				if (newnode) {
 					newnode->prev = node->prev;
+				} else {
+					// last element in the list
+					list->end = node->prev;
 				}
 			} else {
 				// we just removed the first element