tests: Fix layer validation test issues

Fix issues identified by Application Verifier on Windows, which were
leading to invalid/unpredictable test results.
 - Fix VkDeviceObj::queue_props dangling pointer issue, as a result
   of initialization from a std::vector::data() call on a temporary
   vector.
 - Add ErrorMonitor destructor to destroy ErrorMonitor::m_mutex.

Change-Id: I5bfb756a60f2ba13e7023fd6b50cde6c7622af59
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index e647c9d..64d428b 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -397,7 +397,7 @@
     init();
 
     props = phy().properties();
-    queue_props = phy().queue_properties().data();
+    queue_props = phy().queue_properties();
 }
 
 VkDeviceObj::VkDeviceObj(uint32_t id, VkPhysicalDevice obj,
@@ -407,7 +407,7 @@
     init(layer_names, extension_names);
 
     props = phy().properties();
-    queue_props = phy().queue_properties().data();
+    queue_props = phy().queue_properties();
 }
 
 void VkDeviceObj::get_device_queue() {