Canadian PM Justin Trudeau has struck a new deal with the opposition New Democratic Party to keep his ruling Liberal Party government in power until 2025.