Merging +Components header from master.
Merging +Components implementation from master.
Using new isKeyColorAppropriate implmentation