House passes defense bill after Trump issues formal veto threat