removed the annoying START and END from forward table + forward test data changed
added observation probability for each time slot in the forward table
removed start and end state from backward prob table + test data changed + added observation prob to bwt
the definition for foward table entry changed, now ft[s,j] means the prob of observing the first jth obs and for the jth time, we are in state s
definition for backward prob table entry changed accordingly
separate baum-welch algo into baum_welch.py and fixed some silly bug in test files
adding hashable dict
adding the obs prob to ft and bt, test passed
gamma function done, test passed(doubt exists, though)
delta function done, test passed