Faster Baum-Welch

In this pull request most calculations required for HiddenMarkovModelTrainer.train_unsupervised are vectorized; this makes train_unsupervised about 30x faster (number is for demo_pos_bw example).