ENH Refactor and speed up CSR fancy indexing

The incumbent implementation of fancy indexing in `csr_matrix` (and indirectly `csc_matrix`) relies on Python iteration in the general case. However, the general case can be refactored with a handled specific case to use only vectorized iteration.

(As before, this produces a dense matrix as an interim, which could be easily avoided by converting to CSR in fixed-memory blocks, then stacking. This is not currently implemented in this PR.)