Merge pull request #91 from pbrunet/coin

Add necessary thing for Pythran
Better support of type inference for callable types
Better support of type inference for empty_list
Support for none<std::complex<double>>
Better type inference in presence of none type
Use size_t for scalar template parameter instead of long
Improve type inference

Now use two stages to inject the info collected during first stage into
the second stage.

This commit closes #90.
PEP8 compliancy
Add Lazyness Analysis

* this analysis count how many time a variable is use
* it is -1 if variable use to compute its value are modify
Use lazy analysis to type lazy variables

* Variable use few times are lazy variable and may be evaluate later.
  (Usefull for numpy expression template computation)
Fix ifilter optimisation

* Arguments in function have Param context instead of Store
Enable exception with no message
ConstantIntr are evaluate with the constantFolding

*Constant attributs are added in constant_expression, math::pi is useless now (except if we disable constant_folding)
*Attributs can be not a ConstantIntr like "math.cos", in this case, the to_ast
 function do nothing and it is perfect
Fix yield with default parameter

*default parameter gave a const type as default template arguments.
 As Yield create a generator with this types as attributes, we tried
 to assign a value to a const field with the default operator=. As it
 is incorrect, gcc delete this operator and we had the error: you try to
 use a deleted function : operator=
Improve ConstantFolding

*right operator can be use in constant folding: "lala lulu".split()
Add bisect function

* add bisect and bisect_right (which are same functions)
Fix imap

* imap should be able to return a cst value in case of imap of imap for example
Add choice in random

* add the function choice which return a random value of the list
Add time function

*How can we test a time function???