A few convenience functions for working with Python types

- Get a descriptive string after a Python exception (without changing the exception status)
- Convenience function to map from a C++ object to a Python handle
- Convenience to check if a pybind::function is defined by an underlying
  C++ implementation
- Get the type object of a pybind::handle
diff --git a/include/pybind/common.h b/include/pybind/common.h
index d327ab6..3a95210 100644
--- a/include/pybind/common.h
+++ b/include/pybind/common.h
@@ -41,6 +41,7 @@
 #endif
 #endif
 #include <Python.h>
+#include <frameobject.h>
 #ifdef isalnum
 #undef isalnum
 #undef isalpha
@@ -122,6 +123,8 @@
 
 NAMESPACE_BEGIN(detail)
 
+inline std::string error_string();
+
 /// PyObject wrapper around generic types
 template <typename type, typename holder_type = std::unique_ptr<type>> struct instance {
     PyObject_HEAD