Revert commits that cause broken builds on GCC buildbots
- build fails due to PyCallable template definition inside an extern "C" scope

This commit reverts 185240, 184893 and 184608.

llvm-svn: 185560
diff --git a/lldb/scripts/Python/python-swigsafecast.swig b/lldb/scripts/Python/python-swigsafecast.swig
index da7444c..7ee658f 100644
--- a/lldb/scripts/Python/python-swigsafecast.swig
+++ b/lldb/scripts/Python/python-swigsafecast.swig
@@ -1,3 +1,7 @@
+#ifndef __cplusplus
+#error needs C++ to build these
+#endif
+
 // leaving this undefined ensures we will get a linker error if we try to use SBTypeToSWIGWrapper()
 // for a type for which we did not specialze this function
 template <typename SBClass>
@@ -11,38 +15,6 @@
     return SBTypeToSWIGWrapper(&sb_object);
 }
 
-template <typename SBClass>
-PyObject*
-SBTypeToSWIGWrapper (const SBClass& sb_object)
-{
-    return SBTypeToSWIGWrapper(&sb_object);
-}
-
-template <>
-PyObject*
-SBTypeToSWIGWrapper (PyObject* py_object)
-{
-    return py_object;
-}
-
-template <>
-PyObject*
-SBTypeToSWIGWrapper (const char* c_str)
-{
-    if (c_str)
-        return PyString_FromString(c_str);
-    return NULL;
-}
-
-template <>
-PyObject*
-SBTypeToSWIGWrapper (unsigned int* c_int)
-{
-    if (!c_int)
-        return NULL;
-    return PyInt_FromLong(*c_int);
-}
-
 template <>
 PyObject*
 SBTypeToSWIGWrapper (lldb::SBProcess* process_sb)