build: Add dependent repo fetch script [skip ci]

Add a Python program script that clones and builds other
repositories that this repository depends on.

The script is accompanied by a JSON database that contains
the repository information, "known-good" revision information,
and other build parameters for each dependent repository.

The dependent repositories are checked out to the "known-good"
revisions to ensure that they are compatible with the checked-out
revision of this repository.

See the BUILD.md file, the update_deps.py --help output, and
the documentation found inside of the update_deps.py file for
more information.

Fixes #161
Fixes #169
diff --git a/scripts/known_good.json b/scripts/known_good.json
new file mode 100644
index 0000000..10c16be
--- /dev/null
+++ b/scripts/known_good.json
@@ -0,0 +1,78 @@
+{
+  "repos" : [
+    {
+      "name" : "glslang",
+      "url" : "https://github.com/KhronosGroup/glslang.git",
+      "sub_dir" : "glslang",
+      "build_dir" : "glslang/build",
+      "install_dir" : "glslang/build/install",
+      "commit" : "2c8265bb620300047bb9241e39c60c7afe3a81cb",
+      "prebuild" : [
+        "python update_glslang_sources.py"
+      ]
+    },
+    {
+      "name" : "Vulkan-Headers",
+      "url" : "https://github.com/KhronosGroup/Vulkan-Headers.git",
+      "sub_dir" : "Vulkan-Headers",
+      "build_dir" : "Vulkan-Headers/build",
+      "install_dir" : "Vulkan-Headers/build/install",
+      "commit" : "origin/sdk-1.1.77"
+    },
+    {
+      "name" : "Vulkan-Loader",
+      "url" : "https://github.com/KhronosGroup/Vulkan-Loader.git",
+      "sub_dir" : "Vulkan-Loader",
+      "build_dir" : "Vulkan-Loader/build",
+      "install_dir" : "Vulkan-Loader/build/install",
+      "commit" : "origin/sdk-1.1.77",
+      "deps" : [
+        {
+          "var_name" : "VULKAN_HEADERS_INSTALL_DIR",
+          "repo_name" : "Vulkan-Headers"
+        }
+      ],
+      "cmake_options" : [
+        "-DBUILD_TESTS=NO"
+      ]
+    },
+    {
+      "name" : "VulkanTools",
+      "url" : "https://github.com/LunarG/VulkanTools.git",
+      "sub_dir" : "VulkanTools",
+      "build_dir" : "VulkanTools/build",
+      "install_dir" : "VulkanTools/build/install",
+      "commit" : "origin/sdk-1.1.77",
+      "deps" : [
+        {
+          "var_name" : "VULKAN_HEADERS_INSTALL_DIR",
+          "repo_name" : "Vulkan-Headers"
+        },
+        {
+          "var_name" : "GLSLANG_INSTALL_DIR",
+          "repo_name" : "glslang"
+        }
+      ],
+      "prebuild_linux" : [
+        "bash update_external_sources.sh"
+      ],
+      "prebuild_windows" : [
+        ".\\update_external_sources.bat"
+      ],
+      "cmake_options" : [
+        "-DBUILD_TESTS=NO",
+        "-DBUILD_VKTRACE=NO",
+        "-DBUILD_VLF=NO",
+        "-DBUILD_VIA=NO"
+      ],
+      "ci_only" : [
+        "TRAVIS"
+      ]
+    }
+  ],
+  "install_names" : {
+      "glslang" : "GLSLANG_INSTALL_DIR",
+      "Vulkan-Headers" : "VULKAN_HEADERS_INSTALL_DIR",
+      "Vulkan-Loader" : "VULKAN_LOADER_INSTALL_DIR"
+    }
+}