Keep only the most specialized type definitions

Not an issue on desktop GL, but most types have specialized definitions for GLES, e.g. in the original XML:

~~~xml
<type requires="stddef">typedef ptrdiff_t <name>GLintptr</name>;</type>
<type api="gles2" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
~~~

The parser originally added all found definitions for each type (along with all dependencies) to the header. On some platforms these definitions are not the same and that can cause compilation errors. Moreover the additional (otherwise unneeded) dependencies on stddef, inttypes etc. bloat the generated file.

The parser now selects only the most specialized definition available for each type. 

In my tests the patch resulted in no change in generated files for desktop GL and slightly shorter (but still complete) header file for GLES.