GrVkGpu initialization cleanup.

Add GrVkBackendContext for GrVkGpu initialization
Add missing extension initialization
Use device function pointers rather than instance

BUG=skia:5116
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1825593002

Review URL: https://codereview.chromium.org/1825593002
diff --git a/src/gpu/vk/GrVkUniformHandler.h b/src/gpu/vk/GrVkUniformHandler.h
index f84bcff..37bde33 100644
--- a/src/gpu/vk/GrVkUniformHandler.h
+++ b/src/gpu/vk/GrVkUniformHandler.h
@@ -13,10 +13,10 @@
 #include "GrAllocator.h"
 #include "glsl/GrGLSLShaderVar.h"
 
-static const int kUniformsPerBlock = 8;
-
 class GrVkUniformHandler : public GrGLSLUniformHandler {
 public:
+    static const int kUniformsPerBlock = 8;
+
     enum {
         kSamplerDescSet = 0,
         kUniformBufferDescSet = 1,
@@ -82,4 +82,4 @@
     typedef GrGLSLUniformHandler INHERITED;
 };
 
-#endif
\ No newline at end of file
+#endif