Split ColorChanger.java into 3 classes

this approach is easier to follow/read, better-organized, and should
make developing on top of the application a bit easier.