A Survey of Machine Learning Techniques for Improving Global Navigation Satellite Systems