[fix] Check for errors in PyArray_CanCastTypeto DEPRECATE

If a user had set warnings to raise errors, then this DEPRECATE would
leave us with an unpropagated exception and cause havoc downstream.

Unfortunately there is no way to propagate an exception from here, so
we just have to throw it away :-(. But this is still better than the
alternative...

Conflicts:
	numpy/core/tests/test_ufunc.py
[fix] If we fail to raise an error, at least dump something to the console

Conflicts:
	numpy/core/tests/test_ufunc.py
BUG: Do not use python with statement.

The python with statement is not available in Python 2.4, 2.5.
Merge pull request #3813 from charris/backport-1.7-3806

Backport 1.7 3806