Fully initialize allocated memory.

__pyx_CyFunctionObject.defaults must be fully zeroed or a segfault or
memory corruption may occur if the object is visited by the garbage
collector before defaults is later populated. Uninitialized memory is
cast to PyObject* with undefined results:

  static int __Pyx_CyFunction_traverse(__pyx_CyFunctionObject *m, visitproc visit, void *arg)
  {
      ...
      if (m->defaults) {
          PyObject **pydefaults = __Pyx_CyFunction_Defaults(PyObject *, m);
          int i;
          for (i = 0; i < m->defaults_pyobjects; i++)
              Py_VISIT(pydefaults[i]);
                       ^^^^^^^^^^^^^
Merge pull request #183 from jrray/master

Fix runtime crash as described on cython-devel.
improve error reporting on mapped keyword arguments for C functions, implement out-of-order keywords and C method mapping
fix ticket 801: wrong declarations in math.pxd for frexp() and ldexp()
changelog
extend cdef function kwargs tests to include functions from the libc standard declarations
convert function argument names in libc declarations to lower case to make their use as keyword arguments more natural
rename test

--HG--
rename : tests/run/simplify_calls.pyx => tests/run/cdef_function_kwargs.pyx
fix illegal Python names in C lower cased declarations
add test for keyword arguments passed into cdef functions with optional arguments, fix parameter names in test
fix one more test fixing after changing declared C function argument names
provide fallback for cpdef functions that were previously called with full Python semantics
fix kwargs mapping in Py2.[45]
support keyword arguments for C function pointers
add disabled test case
patch inspect.isfunction() in pyregr tests to include CyFunction