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 ?
`getBlockEdgeDefinitions` should not be moved into `Token` - it get nothing to do with single `Token`.

Can't decided on best place for it, I think I must sleep with it.