A General Framework for Learning under Corruption: Label Noise, Attribute Noise, and Beyond