Classes Ruleset and AtRule now inherit the StylesheetStatement class
and the Stylesheet class has a getStatements() function that gives a
list of statements(AtRules and Rulesets) in the order that they have
been added.
Separated parsing and processing.

ParameterRulesetLibrary was changed to LessStylesheet, which takes
care of a ValueProcessor instance and the list of Parameter Rulesets
and processes the Less statements.
Adding Google glog for logging.
Fixing bugs in LessStylesheet::process() and adding debug messages.
Added LessRuleset for holding data on variables declared inside a
ruleset and other rulesets nested inside a ruleset.
Moved processing code to LessRuleset, ParameterMixin, ParameterRuleset
and UnprocessedStatement. And using polymorphism rather than
downcasting StylesheetStatement and RulesetStatement implementations.

StylesheetStatements and RulesetStatements implement a process()
function to process their code and insert the result into the provided
argument. This leaves a LessStylesheet unchanged after processing and
creates a separate css-only stylesheet to write to output.

They also implement a write(CssWriter*) function which is used to
instruct the CssWriter how to output the code.
Added test for referencing a mixin before it's declared and for
recursive mixins.
Mixins in rulesets that are called from outside a ruleset are now
processed.

Example:

.x() { .y { color: #000 } }
.z() { .x }

.z

Should produce:

.y { color: #000 }

Before, only nested rules inside .z() would have been considered and
mixin '.x' would have been skipped.