Extract type name + namespace matching

Also take advantage of Immutable types to avoid recreating syntax of
interest array
Correctly manage trivia

Both code fixes implemented respect trivia now
Move all utility classes to a namespace