Unmodified import of cython magic from IPython

The canonical repository is avilable here:
https://github.com/ipython/ipython

cythonmagic.py is from 300ac3d
test_cythonmagic.py is from 0e0e6a8ed
ipython-COPYING.txt is a copy of COPYING.txt from 8a7c5eab
Cython Magics.ipynb is from

These files are the result of much work on the part of the IPython team, and
were available under the terms of the IPython license, also copied here as
ipython-COPYING.txt
renamed files to be more consistent with cython naming convention
Moved ipython entry point to cython package

`load_entry_point()` is on Cython/__init__.py,
so::   %load_ext Cython is all you need to load the magic.
applying DRY on cython vs Cython

import the ``cython`` as module (no run  as a program)::

   >>> import cython

do the same than::

   >>> import Cython

But the same code was repeated in both places.
myself
refactor tests as a CythonTest class
tag ipython testcase to skip them is ipython is not available
update notebook example
Add a pure-python version of the Black-Scholes function for comparison with the Cython equivalent
Reverted accidental change of cython->cythonmagic
Revert "applying DRY on cython vs Cython"

This reverts commit dab5ac36cf34005a85a42fed5f9045d777389472.
make `%load_ext cython` still valid
handle malloc() failure in encoding setup code
handle malloc() failure in encoding setup code

--HG--
extra : transplant_source : %F3%9A%B7r%F7%DB%C7%88%2B%D2%A4%9C%5E%0FT%B8_XS%D2
minor code cleanup
minor code cleanup

--HG--
extra : transplant_source : M%D5%2C%C2%15%9E%3C%BC%3C%89%25n%95%DF%5C%B8%B5%C5%B8%D9
make encoding setup code safer by not expecting sys.getdefaultencoding() to safely return a bytes object
make encoding setup code safer by not expecting sys.getdefaultencoding() to safely return a bytes object

--HG--
extra : transplant_source : cZx%3E%03l%AC%EDK%E3%C2%F2%2C%9BV%E5%EC%5D%B7%C8
free sys module reference earlier in encoding setup code
free sys module reference earlier in encoding setup code

--HG--
extra : transplant_source : %CA%BB%21%89%8CQ%A0F%3EN%E5%7Cs%01%5D%060A%C8%AF