functionality:

- complete the mql tree printer
- better error handling
- static functions

improvements:

- find a way to move the inlining of MDD functions to the MDD parser (doesn't work because the inliner needs the MDD that does not exist yet)
- fix case when we have $param + $param (inliner doesn't throw good error)
  
- FROM and WHERE inlining for functions:

I think the rule is
- if the MDD functions defines a FROM and a WHERE but not a SELECT, it is not a subquery
- therefore its FROM and WHERE need be added to the query where the function is used
- i _think_ "the query" means the precise subquery where the func is used, so you'd go up the tree to the first FROM... i.e. I don't see why it would be the "root" query
- we could say that actor(type).field is actually the value of the function
x.field FROM type x WHERE x.id= actor_type
so the rule above should be applied... 

- caching for
  - mdd parsing - OK since cached with MDD
  - function call inlining? depends on the function call