Syntax highlighter optimizations

setCurrentBlockUserData is a very slow operation, it takes as much time as highlighting the line itself. Avoid un-needed calls to setCurrentBlockUserData improve performance between 150% and 200%!