Add word wrap support to CachedStringLayout
Handle null text in CachedStringLayout
Improved word wrapping algorithm (character wraps when necessary, better handling of corner cases)