CoralVM-Java: Finally decided on the way contextual tokenizer will work

It will be more similar to the original PHP concept, in that matter that each token context will be responsible for reading the input characters and turning them into sequences of tokens, along with context entering and leaving. The tokenizer will only provide next characters (and reset its buffer when a new token is added, so that token contexts will always read the correct next character, even if that would require re-reading a few characters) and methods to switch contexts, and notify contexts of new tokens for multiple switches at once (like multiple implicit expressions on one line in the original PHP implementation, which will now be a different context though – arguments passing context, to ease the AST builder).