Liberals were headed for a wipeout. But after Trump ramped up his attacks, they reversed a 20-point polling deficit and are neck-and-neck with the Conservatives.