Introduce LineBreakContext containing internal state of the set_linebreaks() function
Move LineBreakContext initialization to a separate function
Move special first char treatment to a function and so get rid of the goto statement
Move simple linebreak classification to a separate function
Move lookup based linebreak classification to a separate function
Reorganize the brk based switch and get rid of two continue statements
Minor changes (remove empty lines, trailing spaces)
Minor change (better consolidate the LineBreakContext updates)
Move linebreak processing logic for individual char to a separate function
Move the initial char processing to the lb_init_break_context() function
Publish the low level API for incremental linebreaking