mixture model training added; EM for mixture model added

- EM for mixture model
- mixture model training
- unittest for mixture model with gaussian distributions 
the max value from the array is first removed, all elements are divided by the removed max element and then exponentiation is done. +1 is the contribution from the removed element in the sum. This sum is basically scaled sum (ie all elements are divided by X0). So after taking log, we add X0 again (which is basically scaling back by multiplying the sum with X0).