Rbm

Several commits to rbm.  RBM gradients still need tests, but it appears to work well.  Commits can be broken into:
Added RBM class.
Added a few missing methods to GaussianVisLayer.
Added L1 decay to DBM and BVMPLayer.
Fixed UpDown inference_procedure.
Refactored GaussianVisLayer tests.
Changed tutorial to use RBM class.

If this is too big I can figure out how to break this up into several PRs.