New Canadian Prime Minister Mark Carney calls snap general election as he seeks mandate to oppose Donald Trump.