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.
I'd simplify this long description to just

    Because an RBM has no interactions between hidden units, the variational posterior used by
    mean field is identical to the true posterior. This means exact inference in an RBM can be
    implemented using InferenceProcedure even though InferenceProcedure was designed to
    perform variational inference in a DBM. However, InferenceProcedures may be configured
    in a way that is inefficient for use with the RBM (e.g., using multiple fixed point updates
    even though a single step should converge for an RBM) or use heuristics that deviate from
    exact inference (e.g. doubling the weights on the first mean field pass). This function is used
    to identify such procedures and prevent their use for exact RBM inference.

   Returns
   -----------
   is_compatible : bool
       True if this InferenceProcedure is appropriate for use as exact inference in an RBM