The US President has hit out at neo-Nazis, white supremacists and the KKK after events in Charlottesville.