linker: Use foreach_list_safe in move_non_declarations

The node being processed may be removed from the list and put in a
different list.  Not using the safe version caused list processing to
change streams after moving a node.
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index d46744e..72b83ff 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -543,7 +543,7 @@
 move_non_declarations(exec_list *instructions, exec_node *last,
 		      bool make_copies, gl_shader *target)
 {
-   foreach_list(node, instructions) {
+   foreach_list_safe(node, instructions) {
       ir_instruction *inst = (ir_instruction *) node;
 
       if (inst->as_variable() || inst->as_function())