cleaned up the alternate forward implementation. Also, added an additional forward function to handle the case that the user knows the final state of the HMM