Improve numpy.copy

* better type coverage
* I have tested that std::copy is used whenever possible.

with pythran
1000 loops, best of 3: 711 usec per loop  # 2d np.ones + copy
100 loops, best of 3: 7.7 msec per loop   # 2d np.ones + double copy
100 loops, best of 3: 8.66 msec per loop  # 2d list + copy

with cpython
100 loops, best of 3: 4.86 msec per loop  # 2d np.ones + copy
100 loops, best of 3: 7.96 msec per loop  # 2d np.ones + double copy
10 loops, best of 3: 76.8 msec per loop   # 2d list + copy
Revert "Constant reciprocal optimization"

This reverts commit bd895f5ac178725f83474bb101a261f37b12e5b8.

Conflicts:
	pythran/optimizations/__init__.py
Clarify the complex mul / div state
Merge pull request #360 from serge-sans-paille/doc/complex-numbers

Clarify the complex mul / div state
Merge pull request #359 from serge-sans-paille/fix/revert-reciprocal-optimization

Revert "Constant reciprocal optimization"
Merge pull request #357 from serge-sans-paille/feature/fast-numpy-copy

Improve numpy.copy
Add missing submodule in setup
Move typing information in its own submodule
MrProper on type_dependencies

Also fix some issues and add tests for these:
* Incorrect for iterate variable handling
* Incorrect if handling
* Incorrect augassign handling
* Raise errors on Incorrect variables
* use os.path.join for system paths
MrProper on reordering