Vulkan: Add vk::GetImpl helper.

Using reflection helpers, we can avoid having to pass the return
type to the GetImpl method.

BUG=angleproject:2200

Change-Id: Id160fbdf0ea8b3de2f219d3cc92394c678189a48
Reviewed-on: https://chromium-review.googlesource.com/742371
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index 309766a..02c24ad 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -40,7 +40,7 @@
 
     // Invalidate current pipeline.
     // TODO(jmadill): Use pipeline cache.
-    auto contextVk = GetImplAs<ContextVk>(context);
+    auto contextVk = vk::GetImpl(context);
     contextVk->invalidateCurrentPipeline();
 
     // Invalidate the vertex descriptions.
@@ -67,7 +67,7 @@
 
             if (bufferGL)
             {
-                BufferVk *bufferVk                            = GetImplAs<BufferVk>(bufferGL);
+                BufferVk *bufferVk                            = vk::GetImpl(bufferGL);
                 mCurrentVkBuffersCache[attribIndex]           = bufferVk;
                 mCurrentVertexBufferHandlesCache[attribIndex] = bufferVk->getVkBuffer().getHandle();
             }