ENH: Attempt to rewrite the index parsing.

This is a work in progress. However, I thought I would put it here, so you can bash me about the design choices. So please do!

 * The code works. There are mostly some fast paths missing, and some deprecations/warnings need to be cleaned.
 * MapIter is a bit reworked here. Not as much as it should be, and doing more probably requires a more complete rewrite. I believe this keeps binary compatibility to the point that should be necessary (i.e. also for the ufunc.at), so I wonder if I can leave them?
 * Fixes quite a few smaller things, and allows to do some deprecation. Also implements 0-d boolean array fancy-indexing.
 * (Some things need cleaning, i.e. `a[()]` righ now returns `a` as it is identical to `a[...]`. Should maybe be a view, but for some reasons the nditer tests segfault if I do that, there is something fishy somewhere...)