Change time.strftime() to return a unicode string.

Use PyMem_Malloc() to allocate temporary storage.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 4e24299..c7cd340 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -475,7 +475,7 @@
 	 * will be ahead of time...
 	 */
 	for (i = 1024; ; i += i) {
-		outbuf = (char *)malloc(i);
+		outbuf = (char *)PyMem_Malloc(i);
 		if (outbuf == NULL) {
 			return PyErr_NoMemory();
 		}
@@ -487,11 +487,11 @@
 			   e.g. an empty format, or %Z when the timezone
 			   is unknown. */
 			PyObject *ret;
-			ret = PyString_FromStringAndSize(outbuf, buflen);
-			free(outbuf);
+			ret = PyUnicode_FromStringAndSize(outbuf, buflen);
+			PyMem_Free(outbuf);
 			return ret;
 		}
-		free(outbuf);
+		PyMem_Free(outbuf);
 #if defined _MSC_VER && _MSC_VER >= 1400 && defined(__STDC_SECURE_LIB__)
 		/* VisualStudio .NET 2005 does this properly */
 		if (buflen == 0 && errno == EINVAL) {
@@ -499,7 +499,6 @@
 			return 0;
 		}
 #endif
-		
 	}
 }