generator: generate all interfaces with the "I" prefix (.NET convention)

To be able to do this, Name property of GenBase class is now virtual, so
that it can be overriden in InterfaceGen with the new name.

Adapters, however, are still classes and then need special care as such
(cannot use the 'Name' property anymore), but this improves a bit the
readability of some parts of the code as the *Implementor and *Adapter
suffixes are now concentrated in just two new properties of GenBase and
not repeated all over the place.
gio: Track API changes (I- interface prefixes)

This includes changes to fix the build, and changes to custom code that
gets added to the generated code. I.e. File.cs now becomes IFile.cs
gtk: Track API changes (I- interface prefixes)

This includes changes to fix the build, and changes to custom code that
gets added to the generated code. I.e. TreeModel now becomes ITreeModel
samples: Track API changes (I- interface prefixes)

This includes changes to fix the build.