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