who played shug avery in the movie color purple