layers: Show handle's name and ID

Added FormatHandle to show handle's name & ID or only ID.

Change-Id: I00103c11ec7f4740ec00e75d8b686621a428eb25
diff --git a/layers/vk_layer_logging.h b/layers/vk_layer_logging.h
index 67ca767..107d503 100644
--- a/layers/vk_layer_logging.h
+++ b/layers/vk_layer_logging.h
@@ -132,6 +132,27 @@
         return label;
     }
 
+    template <typename HANDLE_T>
+    std::string FormatHandle(HANDLE_T *h) const {
+        return FormatHandle(HandleToUint64(h));
+    }
+
+    std::string FormatHandle(uint64_t h) const {
+        std::string ret = "0x";
+        ret.append(std::to_string(h));
+
+        std::string name = DebugReportGetUtilsObjectName(h);
+        if (name.empty()) {
+            name = DebugReportGetMarkerObjectName(h);
+        }
+        if (!name.empty()) {
+            ret.append("[");
+            ret.append(name);
+            ret.append("]");
+        }
+        return ret;
+    }
+
 } debug_report_data;
 
 template debug_report_data *GetLayerDataPtr<debug_report_data>(void *data_key,