layers: Fix leaking backing sets for push descriptors

We'd previously leak any temporary descriptor set left bound to the
pipeline at the end of the command buffer. Rearrange things so we can
use unique_ptr and assure it's always cleaned up correctly.
diff --git a/layers/buffer_validation.h b/layers/buffer_validation.h
index dbc0127..0bc7dab 100644
--- a/layers/buffer_validation.h
+++ b/layers/buffer_validation.h
@@ -22,6 +22,7 @@
 
 #include "core_validation_types.h"
 #include "core_validation_error_enums.h"
+#include "descriptor_sets.h"
 #include "vulkan/vk_layer.h"
 #include <limits.h>
 #include <memory>