create iter state object to help jit in loops

--HG--
branch : numpy-speed
extra : histedit_source : df0698998d99a50191f626cfbe4679a65ef2bd17%2C20b8f900b949195b58a1a765c5be21a8260653af
change usages of iters to use state

--HG--
branch : numpy-speed
extra : amend_source : f8690c090e95cd00fec0c776d9f7b4530926c7e4
extra : histedit_source : ceb5ea0c8b299cb72e583006f10d10775932f48f
make sure argmax/argmin don't swallow exceptions
test, implement itersize

--HG--
branch : numpypy-nditer
update test_zjit

--HG--
branch : numpy-speed
extra : histedit_source : df4b2c62bb7c9e9f2fa5d2286fe923fc29aaeb08
merge default

--HG--
branch : numpy-speed
fix includes

--HG--
extra : rebase_source : e84fdefee62e4301d0d67f642b55615bf83c2304
mark iter state fields immutable

--HG--
branch : numpy-speed
merge default into branch

--HG--
branch : numpypy-nditer
document branch before merge

--HG--
branch : numpypy-nditer
merge numpypy-nditer which implements most of the core of nditer
merge heads
add tests

--HG--
branch : numpy-searchsorted
minor cleanup/refactoring for the sake of py3k
use FakeString everywhere to be more consistent
add a test_zjit for where

--HG--
branch : numpy-speed
extra : histedit_source : 2da8b8ef927fa4a96b3a2a7b676b6348dc50a536%2C55266c42734f8066e01f34ed38348f4f824728f6
cleanup nditer

--HG--
extra : amend_source : 634551e1a8e6abf1f9c2d4409bc95380cd4cbd8f
merge heads
merge default

--HG--
branch : numpy-speed
update nditer to use iter states

--HG--
branch : numpy-speed