Starting PR to push DBN to Pylearn2.

Added RBM subclass of DBM for convenience.
Add docs to DBM.
Added chain initialization to DBM for some future changes to gradient estimation.
Right that makes sense. I can remove the assert and add a 
try: 
    self.inference_procedure.is_rbm_compatible()
except NotImplementedError:
    warnings.warn("Inference procedure %r may have unintended behavior with RBMs." %      
        type(self.inference_procedure))