Major refactoring of how shapes are filled, to better support
images/colors consistently. Similar changes to come for strokes.