Fix issue with CD using variational trick.

I realized I was implementing a variational CD instead of a CD, so I fixed
that. CD now uses the same approach as PCD for its positive phase instead
of replicating VariationalPCD's positive phase.
Fix a bug in TransformerIterator
Add a num_examples parameter to make_symbolic_state.

The make_symbolic_state methods now accept a num_examples parameter,
which is a symbolic Theano variable.
Add DBM helper objects.

There's an object used as a TransformerDataset's Block to sample from
a DBM's last hidden layer, and an object used to stich RBMs together to
form a DBM, using Russ's policy regarding weights selection.