With Boris Johnson on the back foot over sleaze and rail, how Keir Starmer found his angry side