Walmart is winning again — thanks to wealthier shoppers