Issue #2820 - Disable similar colors

Pull request that fixes #2820.

Some tests:
![capture1](https://cloud.githubusercontent.com/assets/783393/3897365/faa144de-2260-11e4-95c9-06b25e9643e6.PNG)![capture2](https://cloud.githubusercontent.com/assets/783393/3897363/fa9af99e-2260-11e4-8861-fad44a134c81.PNG)
-----------------------------
![capture3](https://cloud.githubusercontent.com/assets/783393/3897364/fa9ce0c4-2260-11e4-8df3-36432417df6e.PNG)![capture4](https://cloud.githubusercontent.com/assets/783393/3897366/faa1aaaa-2260-11e4-8644-9bbfc02812c3.PNG)
There's still a fair bit of duplication between these two methods. Could you pull the common code into a `bool ValidateColor(Color c, IEnumerable<Color> invalid, out Color forbidden)`?