Fix lazy variables loading in blocks.

Description
-----------------
This branches fixed the lazy loading of variables inside a block.

Changes
-------------
It adds unit  tests for lazy loading inside of blocks. The test are written as python code and loading input from memory.

It also adds the foundation for testing token and parsing for variables. I find it very hard to develop and debug using raw less files.

It also adds upstream tests for general lazy variable loading, not inside the block. It is not  related to this branch, but I thought that for now is nice to have as much upstream tests as possible. 

It also adds extra unit tests based on Less documented examples for variables.

Do we need to add the minified test for each less file?
I was thinking that a separate / single test for minifcation should be enough.

It does some important minor changes to Parser and Formater. I see that Formatter.format method only touches the `result` member of the parser so I updated the method to not receive a full parser, but only a list of results. In this way, in tests I can pass the Formatter a random list of Nodes without having to construct a full Parser.

Also, the parser was outputing error to sys.stderr. I find it hard to catch/check stderr in tests so I have created a simple reporter object. In tests it can be replaces/injected with an in-memory reporter so that test can easily check errors.

Open questions
----------------------

Some tests are failing since I had a WTF moment. Sometimes the value for a variable is a single string ``css_string``, but othe times is a tuple as ``css_ident``.

I can remove those test to have this branch landed, but I would like to discuss how you would like to handle varialbles declaration.

I have also started a list in readme with thinks that are not supported. Maybe we can create a dedicated ticket for each item so that we can track its progress.

Let me know if something needs to be changes.

Thanks!