Tokens transformators

Proof of concept about transforming tokens (resolve #531).

- [X] add mechanism for support tokens transformation
- [X] add `CT_ARRAY_TYPEHINT` for `T_ARRAY` used as typehint (fix #542)

If merged then I'll create a Transformators for :
* create `CT_CURLY_CLOSE` for `T_CURLY_OPEN`
* create `CT_DOLLAR_CLOSE_CURLY_BRACES` for `T_DOLLAR_OPEN_CURLY_BRACES`
* create tokens for braces in syntax: `$this->{$foo}`
why ``$source = 1`` ? the default value does not make sense here