extend coloring operations

the coloring operations now include two hooks, one is invoked before
coloring starts, the second after color of a structure ends. These
hooks are required for "introspective" color operations whose outcome
depends on the structure. One such example is the rainbow coloring
scheme which requires to determine the ranges of resides actually
present in the structure. Others are (the not yet implemented) color
by float property and the color by secondary structure succession.