BUG: sparse: fix downcast_intp_index to deal with empty arrays
BUG: sparse: avoid introducing 64-bit index arrays spuriously in csr_matrix.__getitem__
BUG: sparse: try to be more backward-compatible by casting to 32-bit in constructor, if possible

Downstream packages (e.g. scikit-learn 0.13) sometimes construct sparse
matrices using 64-bit index arrays, and assume scipy.sparse casts the
index arrays to 32-bit later on, or, at least, that the 64-bitness
doesn't propagate.

To provide better backward compatibility for them here, we need to cast
integer arrays to int32 in the sparse matrix constructor, when this is
possible.
TST: sparse: test that no spurious 64-bit index arrays pop up

... at least in the base test suite
BUG: sparse: play it safer in bsr_matrix.eliminate_zeros
TST: fix test failures on 32-bit platforms due to np.intc != np.int32

To clarify: both are 32-bit integers but they don't compare equal.