Improve and simplify fits Section indexing.

Add support for indexing fits Sections with slices with nontrivial (step != 1) slices, with integer arrays, and with boolean arrays.
Re Ellipsis: The other option is to just raise an error on Ellipsis (and newaxis) indices, which is not optimal but easily worked around from the user side.
Re `ks = ...`: It is really going to matter only in cases where an axis is very large.  I don't know if such things really exist in the wild (I would assume most large FITS images have two or more moderately large axes, and it is the entire file that is too large to be loaded directly, ie. (2048x2048x2048) rather than (1x1x2^33)).  Under that assumption, most of the overhead can be avoided just by caching the `arange` array (which I can easily implement).
I have personally no interest in trying to mock numpy indexing by hand, due to the various subtle semantics I mentioned above, but it'd be a solution too if you want to implement it...