General Boltzmann machine

I'm making an effort to incorporate the changes I made in my fork of Pylearn2 into the original repo.

This pull request concerns a Boltzmann machine framework I developed, which aims to allow arbitrary Boltzmann machines to be implemented in Pylearn2.