Walmart to buy India's Flipkart for $16 billion