[MRG] Restricted Boltzmann Machines: director's cut

This is the new life of PR #1200.

I grabbed @GaelVaroquaux's branch, fixed the random state issue, made most of the API private, changed the example description and added the image to the narrative docs.

Up for debate:
- I left `gibbs`, `free_energy` and `pseudo_likelihood` as public functions. 
- I feel like, in some places, the tests check the implementation against itself,
i.e. if `sample_bernoulli` had some bug, then `test_gibbs` would pass because it verifies the bug against itself.  Could reviewers please take a look at the tests too?