New Canadian prime minister Mark Carney has called a snap general election against the backdrop of a trade war with the US and threats from Donald Trump threatening to make Canada part of America.