layers: Refactor threading layer to use chassis

Added:
  thread_safety_validation.h
  thread_safety.cpp (codegen)
  thread_safety.h (codegen)

Removed:
  threading.cpp
  threading.h
  thread_check.h (codegen)

Also modified the chassis to allow control over pre/post calls on
a per-validation-object basis.

Change-Id: I63600d6e7ea1e14ae4796fe949d36420c7dd4dec
diff --git a/scripts/lvl_genvk.py b/scripts/lvl_genvk.py
index 3e97bc2..e5f4ecf 100644
--- a/scripts/lvl_genvk.py
+++ b/scripts/lvl_genvk.py
@@ -111,11 +111,34 @@
     protectFeature = protect
 
     # ValidationLayer Generators
-    # Options for threading layer
-    genOpts['thread_check.h'] = [
+    # Options for thread safety header code-generation
+    genOpts['thread_safety.h'] = [
           ThreadOutputGenerator,
           ThreadGeneratorOptions(
-            filename          = 'thread_check.h',
+            filename          = 'thread_safety.h',
+            directory         = directory,
+            apiname           = 'vulkan',
+            profile           = None,
+            versions          = featuresPat,
+            emitversions      = featuresPat,
+            defaultExtensions = 'vulkan',
+            addExtensions     = addExtensionsPat,
+            removeExtensions  = removeExtensionsPat,
+            emitExtensions    = emitExtensionsPat,
+            prefixText        = prefixStrings + vkPrefixStrings,
+            protectFeature    = False,
+            apicall           = 'VKAPI_ATTR ',
+            apientry          = 'VKAPI_CALL ',
+            apientryp         = 'VKAPI_PTR *',
+            alignFuncParam    = 48,
+            expandEnumerants = False)
+        ]
+
+    # Options for thread safety source code-generation
+    genOpts['thread_safety.cpp'] = [
+          ThreadOutputGenerator,
+          ThreadGeneratorOptions(
+            filename          = 'thread_safety.cpp',
             directory         = directory,
             apiname           = 'vulkan',
             profile           = None,
@@ -592,7 +615,7 @@
     from cgenerator import CGeneratorOptions, COutputGenerator
 
     # ValidationLayer Generator Modifications
-    from threading_generator import  ThreadGeneratorOptions, ThreadOutputGenerator
+    from thread_safety_generator import  ThreadGeneratorOptions, ThreadOutputGenerator
     from parameter_validation_generator import ParameterValidationGeneratorOptions, ParameterValidationOutputGenerator
     from object_tracker_generator import ObjectTrackerGeneratorOptions, ObjectTrackerOutputGenerator
     from dispatch_table_helper_generator import DispatchTableHelperOutputGenerator, DispatchTableHelperOutputGeneratorOptions