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.
It won't always make sense to zip `keys` and `shape`.  Admittedly this is a corner case, but take for example `arr[..., 1]` where `arr` is a 3-dimensional array.