Refactor Vulkan support to support Fuchsia

- Refactor runtime lookup of Vulkan functions
- Support Magma surfaces
- Add build flags to toggle Vulkan support

BUG=skia:

Change-Id: Ic71965c453507882521443006c4155c7481a9a3f
Reviewed-on: https://skia-review.googlesource.com/9342
Commit-Queue: Greg Daniel <egdaniel@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Greg Daniel <egdaniel@google.com>
Reviewed-by: Michael Jurka <mikejurka@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
diff --git a/.gitignore b/.gitignore
index f292111..ec250f1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -42,3 +42,6 @@
 bin/gn.exe
 bin/clang-format
 bin/clang-format.exe
+
+vulkan-out
+gl-out
\ No newline at end of file