Fix performance and typing issue with complex numbers

* g++ cannot inline a specialized template (!) so rewrite getattr for
  complex numbers. The new version is also more concise :-)
* When building a numpy array of complex numbers, do not forget to
  include complex.hpp
PEP8 compliancy
Merge pull request #206 from pbrunet/perf

Fix constant folding returning boolean values
Merge pull request #207 from serge-sans-paille/fix-complex

Fix complex
Rework management of member variables

Now getattr is used (but only internally) to represent reading a member
variable. They were formerly stored as subscript, the current
representation is backward compatible with Python, which is always nice,
and needs no trick in the IR with metadata, which is even nicer.
Support calling numpy.{shape,size,dims}

It is now possible to call numpy.shape in addition to the attribute
version.
Do not include exception.hpp directly when throwing a given exception

Exception translation mechanism requires the include of the specific
exception header to work correctly.
Merge pull request #209 from serge-sans-paille/rework-getattr

Rework getattr
Add support for most numpy scalar types

One can now build a dictionary indexed by uint8, or a numpy array of
complex64 and pass it to Pythran.

This is very promising for vectorisation!

Note that the tests and doc have been updated accordingly ;-)
Update Pythran documentation

* Fix several typos / mistakes
* (Manually!) cleanup logo
* Update titles and rendering of several blocks
* Move to Sphinx for static website generation.
Centralize version number

It now lies in __init__.py as __version__, as suggested by

http://legacy.python.org/dev/peps/pep-0396/

setup.py and sphinx load it there now.

Thanks to Pierrick for the tip!
Merge pull request #210 from serge-sans-paille/upgrade-documentation

Update Pythran documentation
Merge pull request #211 from serge-sans-paille/export-numpy-types

Add support for most numpy scalar types
Fix name context in genexp optimisation
Add lazyTransform optimisation.

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

* It will give more work to constant folding
* Sould 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 localvariable metadata