Sir Keir Starmer has vowed to "keep on fighting" despite Labour's humiliating defeat in the Gorton and Denton by-election.