train_unsupervised modification in initial probability matrix distributions

In response to issue #373, have created a new probability class in probability.py called RandomProbDist, which initializes a uniform random distribution instead of a flat, equivalent distribution (i.e. all elements in prob matrix are equal). 

With a flat distribution, Baum-Welch algo will not update as it finds itself in a local minimum. With the default distributions now randomized, the algo will perform as expected, optimizing the `_transitions` and `_outputs` matrices and gradually decreasing in total logprob until tolerance is reached.