Split function opcode validation into new files.

* Moved function opcode validation out of idUsage and into new files
 * minor style changes
 * General opcode checking is in validate_function.cpp
 * Execution limitation checking is in
 validate_execution_limitations.cpp
* Execution limitations was split into a new pass as it requires other
validation to register those limitations first.
diff --git a/BUILD.gn b/BUILD.gn
index 6ac1c57..4378824 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -373,7 +373,9 @@
     "source/val/validate_debug.cpp",
     "source/val/validate_decorations.cpp",
     "source/val/validate_derivatives.cpp",
+    "source/val/validate_execution_limitations.cpp",
     "source/val/validate_ext_inst.cpp",
+    "source/val/validate_function.cpp",
     "source/val/validate_id.cpp",
     "source/val/validate_image.cpp",
     "source/val/validate_instruction.cpp",