When the Algorithm Itself is a Racist: Diagnosing Ethical Harm in the Basic Components of Software