Update MVKPresentableSwapchainImage::presentCAMetalDrawable() to create a MTLCommandBuffer scheduled-handler and present the MTLDrawable from there. According to Apple, it is more performant to call MTLDrawable present from within a MTLCommandBuffer scheduled-handler than it is to call MTLCommandBuffer presentDrawable:. Pass presentation timing info as a struct to simplify calls.