Add destroy handler to SurfaceImpl.

This allows the Vulkan back-end to avoid storing a reference to
the VkDevice. This will extend to all the Vulkan object handle wrapper
types.

BUG=angleproject:1684

Change-Id: I3a98e94bc171ca27f225ce57996c3fdf9581e6e1
Reviewed-on: https://chromium-review.googlesource.com/424229
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index d17ab0e..b6a69f6 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -300,6 +300,7 @@
 
     PackPixels(params, angleFormat, inputPitch, mapPointer, reinterpret_cast<uint8_t *>(pixels));
 
+    stagingImage.getImage().destroy(renderer->getDevice());
     stagingImage.getDeviceMemory().unmap();
 
     return vk::NoError();