Change tp_clear generation to clear to NULL.

Better to crash early than to never know that the reference changed to
None. See discussion here:

http://article.gmane.org/gmane.comp.python.cython.devel/14833
Add decorator @gc_no_clear to disable tp_clear slot.

This can be useful if some external objects have to be cleaned up when
the Python object dies. Otherwise the cyclic garbage collector may
drop the references before the cleanup has any chance to run.

Includes documentation and a simple unit test.

Discussion: http://article.gmane.org/gmane.comp.python.cython.devel/14986
Renamed unit test to match decorator name.
Fixed no_gc_clear test for Python 3.
Cleanup unneeded cpdefs and public declarations.

Per Stefan's comment these are unneeded and actually the tests still pass.
Removed directive_type for gc_no_clear as it can be inferred.
Merge pull request #248 from Bluehorn/master

no_gc_clear implementation (disable tp_clear) + doc and tests