Canada will have a new prime minister in coming days amid a trade war with the U.S. and an annexation threat by President Donald Trump.