Added 2 functions for fast line breaking: they populate 2 vectors with...

...string positions where breaks MUST occur, and where they are ALLOWED. Using this data, a text can quite easily be word-wrapped and it doesn't require much memory. The lineBreakUtf8() method could be rewritten to use these new functions.

Using these new functions, my own word wrapping functions became faster, more concise and much more readable. See how much code I could get rid of: 
https://github.com/paulhoux/Cinder-Samples/compare/57457679...e7811af33

It is even possible to cache the line break information this way; as long as the text doesn't change, this information remains valid. Re-using the data allows for very fast word wrapping when the width, alignment or font size changes.

Ah, you want numbers? Well, my previous word wrap algorithm did not use proper unicode line breaking and only allowed breaks on spaces. Rendering the whole Dracula book (more than 855,000 characters) to a VBO mesh took 0.7525 seconds. The new code, using proper unicode line breaking, takes just a bit more for the first pass: 0.7544 seconds. But thanks to caching, subsequent mesh generation is performed in 0.6757 seconds. The code has become much more readable as well. For shorter text, the new code is roughly twice as fast. So these new functions come in very handy!