Wrap look-and-feel in a theme

Creates new Theme classes to control the appearance of charts, series, axes and tables.
No, we always want to set a flag to block entry to the function before starting to do the setup, to prevent infinite loops (if init() calls a method which calls draw() which calls init(), for example).