State of the Art Review for Applying Computational Intelligence and Machine Learning Techniques to Portfolio Optimisation