Refactoring of a lot of code.

This commit introduces a lot of changes such as:
  * Types to handle need to be whitelisted by adding them in the
    whitelist.txt file.
  * Providing a way to override the name of a class.
  * Providing a way to override GIR data with .defs data located in
    src/overriders.
  * Adding methods to Block and DefsFile classes to get information
    from a Block (fields) and add them in an existing DefsFile.
  * Factorizing the IntrospectionParser code.
  * Add utf8 and filename types as registered String types.
  * Removing .defs files that we needed before.

There are still some known issues such as public API not matching the
generated and errors throwing not handle yet.