Add lazyTransform optimisation.

* It forwards in the code lazy variables used only once.
  def foo(): a = 2; print a
  become
  def foo(): print 2

* It will give more work to constant folding
* Should be good for scientists as they use a lot of variable as constant parameter (eg. R = rayon_of_earth, G = gravity, ....)
Fix set operator for empty set or not enought arguments
Change PureFunctions analysis to PureExpressions analysis
Fix pythonic for list
Fix lazyAnalysis for omp clause
Fix backend for omp clause using scope analysis instead of metadata
Fix lazyness analysis for subscripted variables

* Partialy modified variables means variables using it are deads
Scope analysis is more powerful for declaration than metadata
Fix unparse for empty set
Apply lazyTransform before constant folding to give more work at constant folding
Fix test to avoid constant folding
Fix function expand when module is not imported
Add missing combiners
Fix LazyAnalysis as Exception can't be lazy
Fix LazyAnalysis : iterate variable can't be lazy