Move Blitter ownership from Image to Device

The blitter has a cache which can allow us to reuse already used
routines, so it should be kept in a central location. For that
reason, the blitter ownership was moved from the Image object to
the Device object.

Bug b/117974925

Change-Id: I825853c381dcbc04701b1d9e7dfa376108294221
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/25728
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Vulkan/VkDevice.cpp b/src/Vulkan/VkDevice.cpp
index 60e13f1..7891784 100644
--- a/src/Vulkan/VkDevice.cpp
+++ b/src/Vulkan/VkDevice.cpp
@@ -18,6 +18,7 @@
 #include "VkDebug.hpp"
 #include "VkDescriptorSetLayout.hpp"
 #include "VkQueue.hpp"
+#include "Device/Blitter.hpp"
 
 #include <new> // Must #include this to use "placement new"
 
@@ -50,6 +51,8 @@
 		// "The ppEnabledLayerNames and enabledLayerCount members of VkDeviceCreateInfo are deprecated and their values must be ignored by implementations."
 		UNIMPLEMENTED();   // TODO(b/119321052): UNIMPLEMENTED() should be used only for features that must still be implemented. Use a more informational macro here.
 	}
+
+	blitter = new sw::Blitter();
 }
 
 void Device::destroy(const VkAllocationCallbacks* pAllocator)
@@ -60,6 +63,8 @@
 	}
 
 	vk::deallocate(queues, pAllocator);
+
+	delete blitter;
 }
 
 size_t Device::ComputeRequiredAllocationSize(const Device::CreateInfo* info)