Bug 975996:  Add _PyTime_DoubleToTimet to C API
New include file timefuncs.h exports private API function
_PyTime_DoubleToTimet() from timemodule.c.  timemodule should export
some other functions too (look for painful bits in datetimemodule.c).

Added insane-argument checking to datetime's assorted fromtimestamp()
and utcfromtimestamp() methods.  Added insane-argument tests of these
to test_datetime, and insane-argument tests for ctime(), localtime()
and gmtime() to test_time.
diff --git a/Lib/test/test_time.py b/Lib/test/test_time.py
index 9e16d0b..64f1f01 100644
--- a/Lib/test/test_time.py
+++ b/Lib/test/test_time.py
@@ -176,6 +176,14 @@
                 del environ['TZ']
             time.tzset()
 
+    def test_insane_timestamps(self):
+        # It's possible that some platform maps time_t to double,
+        # and that this test will fail there.  This test should
+        # exempt such platforms (provided they return reasonable
+        # results!).
+        for func in time.ctime, time.gmtime, time.localtime:
+            for unreasonable in -1e200, 1e200:
+                self.assertRaises(ValueError, func, unreasonable)
 
 def test_main():
     test_support.run_unittest(TimeTestCase)