Tom Cruise makes surprise appearance at Wal-Mart annual meeting