With Charlottesville, President Trump flunks a moral test