ENH: Reimplement much of the indexing machinery

Current status: Everything works, but cleanup to do, new tests to add and optimizations to do. If anyone is interested, everything that is not GetMap/SetMap could already be reviews probably.

  * The code has a lot of `TODO`s, some of them mark smaller pending decisions...
  * Parsing itself should be fine, cleanup mostly for MapIter necessary (also fixing binary compatibility)
  * Still needs tests for the new deprecations (non-integer array-likes)
  * Speed improvements/fast-path necessary for SetMap.
  * Speed improvements/cleanups possibly for GetMap
  * New 0-d boolean index support can't be tested/used until deprecation is done...