Setitem array slice

Fix for bug #587  
Incorporated Antoine's suggestions 
Also includes a printf fix in cgutils.py and a compiler warning fix in _numpyadapt.c

It seems these pointer computations are ignoring any alignment issues. Are you sure it's ok? It seems you should declare a struct at the C level and use offsetof() to compute field offsets, I think.