Handle correctly multiple inheritance
Use X-Macro for visitors
Create Variable, Type and Function
Define native types as X-Macro in order to ease future adds
Create types header in configure script, fix with it distcheck errors
Change visibility support and test