Add BoltzmannMachine class draft and accompanying tests
Add Boltzmann machine costs draft
Add credits to Boltzmann machine-related files
Add boltzmann_machine cost draft (not working)
Add connectivity support in boltzmann_machine and corresponding unit tests
Add variational inference draft
Cosmetic changes
Fix sample and variational_inference methods up to a working state
Add missing argument to self.sample call
Implement VariationalPCD for BoltzmannMachine
Add Space-related methods
Make irange an optional parameter
Change naming convention from 'ndim' to 'n_units'
Add mathematical derivation for 'sample' method in docstring
Documentation changes

Conflicts:
	doc/library/models.txt
Finish implementing BoltzmannMachine
Initialize biases and weights more explicitly
Finish weights masking implementation
Introduce data_partition

This is a workaround to make datasets like MNIST work with
BoltzmanMachine models having multiple input layers. The
proper way to do that would be to have a TransformerDataset
do the mapping, but this is something that has yet to be
developped.
Fix bug, add convenience methods