Add function to set an icd's dispatch table for subsequently created objects.

With layers the loaders dispatch table is used instead of the drivers dispatch
table.  The gpu objects were reflecting this change but not subsequent objects.
Tell the icd driver about the loader's dispatch table so it will use it on
object creation rather than the default  driver dispatch table.
diff --git a/xgl-generate.py b/xgl-generate.py
index 552c84d..2f155d8 100755
--- a/xgl-generate.py
+++ b/xgl-generate.py
@@ -122,7 +122,6 @@
                 if proto.ret != "XGL_VOID":
                     stmt = "return " + stmt
                 if proto.name == "CreateDevice" and qual == "LOADER_EXPORT ":
-                    stmt_cd = "XGL_RESULT res = " + "(*disp)->%s" % proto.c_call()
                     funcs.append("%s%s\n"
                              "{\n"
                              "    ActivateLayers(&%s);\n"
@@ -131,10 +130,7 @@
                              "            (const XGL_LAYER_DISPATCH_TABLE * const *) wrapped_obj->baseObject;\n"
                              "    %s = wrapped_obj->nextObject;\n"
                              "    %s;\n"
-                             "    const XGL_LAYER_DISPATCH_TABLE * *disp_dev = (const XGL_LAYER_DISPATCH_TABLE *  *) *%s;\n"
-                             "    *disp_dev = (const XGL_LAYER_DISPATCH_TABLE *) *disp;\n"
-                             "    return res;\n"
-                             "}" % (qual, decl, proto.params[0].name, proto.params[0].name, proto.params[0].name, stmt_cd, proto.params[2].name))
+                             "}" % (qual, decl, proto.params[0].name, proto.params[0].name, proto.params[0].name, stmt))
                 elif proto.params[0].ty != "XGL_PHYSICAL_GPU":
                     funcs.append("%s%s\n"
                              "{\n"