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