modify to include color border, minor refactoring
listen out for the bounds being constrained - this is when we have new leg colors to display
refactor - include custom painting in top level, to prevent duplicating it in multiple children
introduce marker interface for contributions that have their own color
refactor, to move COLOR property name to parent class
remove per-contribution color change processing, just do it when the bounds have been constrainted. This also overcomes a problem where if a contribution is inActive we shouldn't give it a color, but since we don't get a property change, we never know about it.