Added CellBuilder interface
Discovered an issue where negative maxWidth causes Text.calcDimensionsForReal() to go into an infinite loop.  Prevent the condition by throwing an exception, but this should be fixed at a deeper level later (see notes in code).