Walmart sets age of 21 to buy firearms, ammunition