Added Restricted Boltzmann machines

RBMs are a state-of-the-art generative model. They've been used to win the Netflix challenge [1] and in record breaking systems for speech recognition at Google [2] and Microsoft. This pull request adds a class for Restricted Boltzmann Machines (RBMs) to scikits-learn. The code is both easy to read and efficient.

[1] http://techblog.netflix.com/2012/04/netflix-recommendations-beyond-5-stars.html
[2] http://research.google.com/pubs/archive/38130.pdf