Random projection

This commit brings the changes up to date with scikit-learn:master and moves random projections under master. I am just trying to take steps to get this merged. I might add some kerneled bits to the code as well.