Corrected two bugs related to 'tied' covariance_type in mixture.GMM(), a...

...dded test, closes #4036

The first bug was with the Gaussian log-density calculation for the 'tied' covariance_type.
Rather than fix this equation I reformatted the covars data structure so that it could be fed
into the 'full' covariance_type log-density calculation. It might be a tiny bit slower but I think
it is better to have the least amount of potentially redundant code as this should minimize
the potential for such errors.

The second bug I fixed was related to the _covar_mstep_tied() function, only the first part
of the equation should be divided by X.shape[0].
you can do better:

```
out = avg_X2 - avg_means2
out *= 1. / X.shape[0]
out.flat[::len(out)  + 1] += min_covar
```

this GMM really needs some love...