Fix double frees, remove_process now releases memory

Presence in singly-linked list strongly indicates that process is heap
allocated, and that if we are about to stop tracing it, we should also
reclaim the memory.
diff --git a/proc.h b/proc.h
index ed2bb70..443bd8e 100644
--- a/proc.h
+++ b/proc.h
@@ -193,7 +193,11 @@
 		   void *data);
 
 void change_process_leader(Process *proc, Process *leader);
-void remove_process(Process *proc);
+
+/* Remove process from the list of traced processes, drop any events
+ * in the event queue, destroy it and free memory.  */
+void remove_process(struct Process *proc);
+
 void install_event_handler(Process *proc, struct event_handler *handler);
 void destroy_event_handler(Process *proc);