removing getVariables() and copyGlobalsTo() from VarsContext. Seem unnecessary
Making Variables Poolable. This is necessary to prevent creating unnecessary Variable instances when multiple VarsContext may live together at the same time
Adding a VarsContext child to every VarsContext so a stack of VarsContext can actualy be implemented.
Also: VarsContext is now poolable
Adding support in VariablesSystem for having local contexts. See javadoc for a detailed description on how it works.
Fixing ConditionalSystem and ChangeVarExecutor after API changes in VariablesSystem
Fixing tests. Does not need to be reviewed
Test updated
Comments addressed
ConditionalSystem refactored:
- processEntity() method overriden to push a local context with the "$_this" variable that points to the entity that owns the condition. The code is sth as simple as:
```java
public void processEntity(Entity owner, float delta){
   variablesSystem.push().localOwnerVar(entity);
   doProcessEntity(entity, deltaTime);
   variablesSystem.pop();
}
public abstract void doProcessEntity(Entity entity, float deltaTime);
```
As a consequence, it was not necessary to pass Entity owner to the evaluateCondition method, which has been simplified
Fix all systems that depend on ConditionalSystem after latest changes in the api
"entity" reserved word replaced by "target". What do you think about it?
Minor fix after rebase.
Make VariablesSystem check that user-defined variables are not reserved (do not start by "_")
Little cleanup in VarsContext:
- registerVariables(List) not needed
- GLOBAL_VAR_PREFIX removed
Make VariablesSystem register reserved variables (lang)
CoolDemo updated:
- _g_lang renamed to _lang
- user declaration of _lang removed
Merge pull request #404 from jtorrente/varscontext

Adding support for multiple local contexts