Implementation of Deep Belief Networks

This is a cleaned up version of my DBN implementation using the RBMs in Boltzmann.jl. For now it is a really simple extension, as it justs adds a new type `DBN` and a function to fit it, as well as a helper function to compute the mean of the hiddens at a given layer. The user can only change the type of the first RBM because in most of the applications I've seen all the upper layers are Bernoulli RBMs, but this can be easily changed if needed.

I also added an example that uses the MNIST dataset to train it. The HDF5 file is generated by [this script](https://github.com/pluskid/Mocha.jl/blob/master/examples/mnist/get-mnist.sh) from the Mocha.jl package. I think we could test it with a simpler dataset and add that test at a separate folder (e.g., `examples/`).
There's separate package for this dataset - [MNIST.jl](https://github.com/johnmyleswhite/MNIST.jl) - so no need to read data manually. The only possible detail is that you may need to scale `X` to a range `[0..1]`, since RBMs behave really bad with values larger than 1.