London Mayor Sadiq Khan has called on Theresa May to cancel President Trump's state visit to Britain.