Add color operation methods

A rewrite of the offsetWith method. Smaller, easier.