Improvements to EM fitting procedure

- Added: Multiple initialisations. Random or fixed initialisations, or mixure of the two. Keep the best parameter fits.
- Added: Cross-validation. K-fold validation, using sklearn. Returns all fits, best fit chosen to be median of test+train fit (as always decreasing).
Experimental data improvements, RGB/LAB functions in utils

- Added: Many plots added. Playing around with Pandas for some of them.
- Added: Plotting function to show x/y data and their marginals.
- Added: RGB/LAB conversion functions.