avoid std::string when creating signatures, and make nicer type names. binary size reduced by ~10%
diff --git a/include/pybind/common.h b/include/pybind/common.h
index 0ee2668..8a9850d 100644
--- a/include/pybind/common.h
+++ b/include/pybind/common.h
@@ -139,7 +139,7 @@
 
 /// Internal data struture used to track registered instances and types
 struct internals {
-    std::unordered_map<std::string, type_info> registered_types;
+    std::unordered_map<const std::type_info *, type_info> registered_types;
     std::unordered_map<void *, PyObject *> registered_instances;
 };