Foldable threads in header view

The implementation is pretty silly:

+ put a marker everytime we come across a message that has a
 'thread-level' of 0.
+ look for that marker, the line that has it is the thread header,
  create an overlay for it.
+ the thread header is given different faces depending of it's folded
  state
+ all lines after that marker up to another marker or end-of-file are
  the subthreads, they are given another overlay.
+ the subthreads block overlay is given a face to customize it's look.
+ we only set-up overlays on demand (after rendering) so that we don't
  slow header-view rendering.
+ as a bonus track, a function to recurse all thread groups is provided.

Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>