Patch review:
* ItimerError should be signal.ItimerError, not signal.error.
* It should probably inherit from EnvironmentError or IOError.
* itimer_retval will leak the new tuple if one of the PyFloat_FromDouble
fails.
* Do you have test and doc patches, too?
* What does the "which" argument mean, is it an arbitrary integer
identifying the timer?