Mexican president cancels US visit after Donald Trump's Twitter insult