Replace FunctionGroup template with HighlighterGroup class
Add HierachicalHighlighter class

HierachicalHighlighter contains a map of names to HighlighterGroup
and can wrap any highlighter that wants to access user settable
sub groups.
Add a fill highlighter that just fills the display buffer
ref highlighter tolerates unexisting reference
Convert Region highlighter to a HierarchicalHighlighter

add a region using addhl region <id> <begin_regex> <end_regex>
then fill the region with addhl -group <id>/content ...
Add support for recursion in region highlighter

An optional parameter defines the recursion regex, that match
potential closers.

For example, %sh{ ... } blocks support nested { }, so defining \{
as the recurse regex make the region highlighter correctly match
%sh{ ... { ... } ... } constructs
add ' ' for whitespaces object
Refactor region highlighter, extract code to helper classes
Add MultiRegionHighlighter

MultiRegionHighlighter provides a way to segment the buffer in
logical regions using the common left-most rule for finding the
next region. It then provides highlighting groups for each region
that can be filled.
add postfix increment to ParameterParser iterator
Fix selection update
Remove defhl, use addhl -group
update the readme for highlighters doc
Fix crash in paragraph selection
Fix crash in paragraph selection
Fix selection update
Refactor highlighter command completions
Share  implementation in complete_id/complete_group_id
Use zstr instead of c_str in ncurses addutf8str
Highlight selection cursors in a second pass

This allows cursors to overlap on next selection and still be
visible.