Donald Trump has announced sweeping tariffs on Mexico, Canada and China, kicking off a trade war that will affect the globe.