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
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
Refactor highlighter command completions
Share  implementation in complete_id/complete_group_id
Merge branch 'master' into hierarchical-highlighters
Add more feature description for syntax highlighting in README
Fix corner cases in region highlighting
Use -group rather than -id in hooks to mirror highlighters closer
Complete hook documentation in README