better profiler output
semantics clarified for path specialization.

In particular:
- matches are only exact matches
- alternation only returns specialized versions of matched branches
- intersection returns intersection of all specialized branches if match succeeded

Tests also updated.
tests and bug fix for specialization with path negation
additional tests for combination of hooks and negation
specialization now returns group tuple list; unit tests updated