Boris Johnson partially climbs down on international law-breaking bill in face of Tory rebellion