President Donald Trump says he plans to deploy troops at the US border, as he threatens to scrap a deal on the North American Free Trade Agreement unless Mexico prevents "caravans" of migrants heading for the US.