Several performance improvements
Several performance improvements

* Make expr.args a protected variable
* Chaange expr.args from a list to a tuple
* Get rid of iter_vars method; use set union operator to construct
  support set.
* Move some factorization inwards, to factor smaller expressions

karissa/pyeda,karissa/pyeda,sschnug/pyeda,karissa/pyeda,GtTmy/pyeda,GtTmy/pyeda,cjdrake/pyeda,sschnug/pyeda,cjdrake/pyeda,GtTmy/pyeda,pombredanne/pyeda,cjdrake/pyeda,pombredanne/pyeda,pombredanne/pyeda,sschnug/pyeda