Add a virtual clone() method to ir_instruction.

This will be used by function inlining, the linker, and avoiding double
usage of the LHS deref chains in ++, *=, and similar operations.
diff --git a/linker.cpp b/linker.cpp
index abf5371..ba382fe 100644
--- a/linker.cpp
+++ b/linker.cpp
@@ -290,7 +290,8 @@
 		   * have an initializer but a later instance does, copy the
 		   * initializer to the version stored in the symbol table.
 		   */
-		  existing->constant_value = var->constant_value->clone();
+		  existing->constant_value =
+		     (ir_constant *)var->constant_value->clone(NULL);
 	    }
 	 } else
 	    uniforms.add_variable(var->name, var);