Refactor the ndarray adaptor and expose the array flags
Speed up array.flat() for C-contiguous arrays
Remove unused flags field
Merge branch 'ndadapt_refactor' into flat_speedup

Conflicts:
	numba/_helperlib.c
	numba/targets/arrayobj.py
	numba/tests/test_numpyadapt.py
Refactor a bit
Optimize flat() implementation for non-contiguous arrays.
Speed up C-contiguous flat() by 15% more by keeping track of the current pointer
(speedup should be larger on arrays with non-trivial item sizes)
Merge branch 'master' of github.com:numba/numba into flat_speedup
Remove spurious if-else
Merge branch 'master' of github.com:numba/numba into ndadapt_refactor
Keep (data, shape, strides) together for the llarray ABI.
Use itemsize rather than strides[-1] when iterating over a C-contiguous array (it's more correct)
Fix array casting & dispatcher not respecting can_compile flag
Also refactor the function type generation code
Merge branch 'ndadapt_refactor' of https://github.com/pitrou/numba into cudafix_pr816
Fix cuda ndarray head structure for PR 816
Merge pull request #816 from pitrou/ndadapt_refactor

Refactor the ndarray adaptor and expose the array flags
Merge pull request #830 from sklam/cudafix_pr816

CUDA fix for pr816
Merge pull request #827 from sklam/fix_casting

Fix array casting & dispatcher not respecting can_compile flag
Merge branch 'master' of github.com:numba/numba into flat_speedup

Conflicts:
	numba/_helperlib.c
	numba/targets/arrayobj.py
	numba/tests/test_numpyadapt.py
Merge pull request #817 from pitrou/flat_speedup

Speed up ndarray.flat()