Refactored the Vulkan::CommandPool class
- Removed the PIMPL pattern from the Vulkan::CommandPool class.
- Fences are again a transient resource. The Graphics class will not maintain references to them. The code that requires fences to stay alive should hold references to them.
- The fences are still deallocated by the device at the end of the frame.
- Fixed a bug with enqueueing deleter functions for garbage collection. The deleter functions now capture copies of the Vulkan handles and any other required pointers instead if the "this" pointer which is not valid at the time of garbage collection.
Change-Id: I93b6a97e83632faebf557c8a9c439547f00ef1a8