Graphics refactoring
> Added a discard queue in the ResourceCache class.
> RefCounted Vulkan objects no longer destroy their Vulkan handles when the reference count reaches 0. Instead, a deleter function is queued in the discard queue of the current thread's ResourceCache.
> Imlemented the CollectGarbage method in the Vulkan::Graphics class. This method executes all the deleter functions queued in the current thread's resource cache.
> The Vulkan::Graphics class now contains an std::unordered_map that stores a ResourceCache per thread id.
> Added Create<vulkan_object_name> methods for Vulkan objects in the Vulkan::Graphics class.
> Added action methods (e.g WaitForFence(...)) in the Graphics class.
> Function implementations in vulkan-graphics.cpp now match the declaration order defined in vulkan-graphics.h.
> Added implicit conversion operators in some Vulkan objects that exposes the pointer to the Vulkan handle.
> Moved the BufferType and Platform enum classes to vulkan-types.h.
Change-Id: I1b4b2bd3d2074c016d1c4fbce3c5ab532b279e64
18 files changed: