[WIP] Spectral biclustering

An implementation of the spectral biclustering algorithms. This pull request is ready for review.

- [x] `sklearn.utils.arpack.svds` sometimes returns NaN. This causes `test_spectral_biclustering()` to sometimes fail.
- [x] Adapt Hungarian algorithm and use it for bicluster scoring.
- [x] documentation and examples (Still need to expand Spectral Biclustering documentation and adapt blog examples).
- [x] get tests to full code coverage
- [x] better array validation in `fit()`
- [x] support sparse matrices
- [x] allow randomized SVD