Fix struct conversion.
Merge branch '0.20.x'
whitespace
utility code construction for struct conversion requires constructing the field conversion functions as well

--HG--
extra : transplant_source : %A3%81%87%E2%0A%20%DA%7D%7E%5B%A0%9B%80i%F9%8Az%9B%F3%DC
utility code construction for struct conversion requires constructing the field conversion functions as well

--HG--
extra : amend_source : af016229b6c8c40168070e4d3a9581ed12500d3f
add test for utility code inclusion in conversion of external structs
merge 0.20.x branch into master
whitespace
comments
implement support for extracting type declarations from signature annotations
add tests for type declarations in signature annotations
changelog
prevent plain annotation type parsing from erroring out on unparsable annotations
fix doc typo
merge 0.20.x branch into master
Py3 fix
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.