Adding inner protected static class SubUpdatable to CanvasSplitter so that code
would not have to be repeated. Not using this yet. Other changes are minor;
changing some local variables to final, changing signatures of some methods
from 'public' to 'protected'.