When Smart Cities Get Smarter via Machine Learning: An In-depth Literature Review