Pr 2474

I did some work on your [pull request](https://github.com/scipy/scipy/pull/2474) for CSR and CSC fancy indexing. 

This includes:

* @pv's rebase, then I rebased on a more current master.
* PEP8'ed
* a bit of refactoring
* support for indexing with sparse boolean matrices.

Since this has a rebase in it, the first 600ish commits are irrelevant to the pull request... However I am getting some new errors that y'all didn't mention. I'd like to see what Travis say though, because I think my testing environment might be broken or something.