Cleaned up implementation (adding __str__ and __repr__, added logging to test function)
Added some pickling code to RBM