RFC: is the change to spectral embedding acceptable? [related to diffusion maps]

This PR adds diffusion embedding. Since we have discussed this before, the intent of this PR is not to merge this but primarily to ask if the change for spectral embedding is acceptable given the context. 

```
Could we change the function to return the eigenvectors, eigenvalues and the degrees of the laplacian?
```

As you can see with that little change I can implement proper diffusion embedding and move it outside of scikit-learn.

I would also like to point out that the use of the term diffusion_map in the current spectral_embedding code is somewhat misleading given that solving the eigenvalue problem gives you a particular instance, not the generalized solution to a diffusion map. This is precisely what the diffusion_embedding part does for those interested. Calling them eigenvectors i think would be fine.

If the powers that be have changed their mind that this is a simple enough generalization of spectral embedding, I am also happy to finish the PR with the DiffusionEmbedding and clustering classes and appropriate tests.