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.
The problem is to know what is triggering integer and what is triggering boolean indexing.  For example, Python lists of booleans (as opposed to ndarrays of booleans) used to trigger *integer* indexing, but the behavior will (apparently) change in a future numpy release...  This construct lets us just mimic whatever behavior numpy uses.