Teenager Mirra Andreeva fought back to overcome world number one Aryna Sabalenka 2-6, 6-4, 6-3 in the Indian Wells final.