layers: indirect GPA in dispatch table

layer_initialize_dispatch_table was using gpa pointer without lookup.
That could put the loader GPA function in for the lowest dispatch table
instead of the icd GPA function.
Use the same return from GPA call for GPA itself.
There was code fixing up GPA dispatch in draw_state.cpp and mem_tracker.cpp.
Remove that now that layer_initialize_dispatch_table does the right thing.
diff --git a/vk-generate.py b/vk-generate.py
index 92bac91..120d7b4 100755
--- a/vk-generate.py
+++ b/vk-generate.py
@@ -220,10 +220,7 @@
         for proto in self.protos:
             if 'WsiX11AssociateConnection' == proto.name:
                 stmts.append("#if defined(__linux__) || defined(XCB_NVIDIA)")
-            if proto.name == "GetProcAddr":
-                stmts.append("table->%s = gpa; /* direct assignment */" %
-                        proto.name)
-            elif self.is_dispatchable_object_first_param(proto) or proto.name == "CreateInstance":
+            if self.is_dispatchable_object_first_param(proto) or proto.name == "CreateInstance":
                 stmts.append("table->%s = (PFN_vk%s) gpa(gpu, \"vk%s\");" %
                         (proto.name, proto.name, proto.name))
             else: