Merge pull request #1 from filodej/filodej/wordbreak

Update workbreakdef.h for Table 3 of Unicode Standard Annex 29, Rev. 23
Refactor set_linebreaks() function

The main loop in the set_linebreaks() function is refactored to make it more extensible.
- Additional state LINEBREAK_UNDEFINED is introduced
- Several helper functions are introduced
  - lb_handle_first_char()
  - lb_classify_break_simple()
  - lb_classify_break_lookup()
- Unnecessary goto statement is replaced with a switch statement
Introduce LineBreakContext structure and further refactor set_linebreaks() function

- Change helper function to accept LineBreakingContext instead of individual arguments
  - lb_classify_break_simple()
  - lb_classify_break_lookup()
- Implement three new helper functions
  - lb_init_break_context()
  - lb_handle_first_char()
  - lb_handle_next_char()
Publish low level linebreaking API usable for incremental linebreaking

Move LineBreakingContext struct to header file and publish
the following functions:

 - lb_init_break_context()
 - lb_handle_first_char()
 - lb_handle_next_char()