Split Tokens into Tokens and TokensAnalyzer

Hi!

I am wondering about splitting `Tokens` class into 2 classys:
- Tokens - Simple collection of code tokens. It's role is to provide the ability to manage collection.
- TokensAnalyzer - analyzer of Tokens collection, to checks things like `isLambda` etc.

Some WIP in PR to show proof of concept.

What do you think ?
TokensAnalyzer uses Tokens a lot. Yes, not only in this case.
And Tokens must not use TokensAnalyzer.

Seeing a good place for `detectBlockType` ?