Layers: Implement unique_objects layer using vk.xml

UniqueObjects was the final LVL layer not using vk.xml for codegen.
The new implementation follows the threading layer model which
(outside of safe_struct dependencies) is more tolerant of API
changes. Also updated for structure and style.

build-android/android-generate.bat - Updated for build
build-android/android-generate.sh  - Updated for build
generator.py                       - Added Unique Objects Generator
genvk.py                           - Added call to U_O generator
layers/CMakeLists.txt              - Updated for build
layers/unique_objects.cpp          - New: manually generated code
layers/unique_objects.h            - Now a true header file
vk-layer-generate.py               - killed!

Change-Id: I0d57871dfd2600829502f0bffd7cf6f926b7d5e7
diff --git a/genvk.py b/genvk.py
index 993477c..c34c8a4 100755
--- a/genvk.py
+++ b/genvk.py
@@ -18,6 +18,7 @@
 from reg import *
 from generator import write, CGeneratorOptions, COutputGenerator, DocGeneratorOptions, DocOutputGenerator, PyOutputGenerator, ValidityOutputGenerator, HostSynchronizationOutputGenerator, ThreadGeneratorOptions, ThreadOutputGenerator
 from generator import ParamCheckerGeneratorOptions, ParamCheckerOutputGenerator
+from generator import UniqueObjectsGeneratorOptions, UniqueObjectsOutputGenerator
 
 # debug - start header generation in debugger
 # dump - dump registry after loading
@@ -308,6 +309,28 @@
         alignFuncParam    = 48,
         genDirectory      = outDir)
     ],
+    [ UniqueObjectsOutputGenerator,
+      UniqueObjectsGeneratorOptions(
+        filename          = 'unique_objects_wrappers.h',
+        apiname           = 'vulkan',
+        profile           = None,
+        versions          = allVersions,
+        emitversions      = allVersions,
+        defaultExtensions = 'vulkan',
+        addExtensions     = None,
+        removeExtensions  = None,
+        prefixText        = prefixStrings + vkPrefixStrings,
+        genFuncPointers   = True,
+        protectFile       = False,
+        protectFeature    = False,
+        protectProto      = None,
+        protectProtoStr   = 'VK_NO_PROTOTYPES',
+        apicall           = 'VKAPI_ATTR ',
+        apientry          = 'VKAPI_CALL ',
+        apientryp         = 'VKAPI_PTR *',
+        alignFuncParam    = 48,
+        genDirectory      = outDir)
+    ],
     None
 ]