Explicitly merge functions

Some functions are part of multiple features or extensions. For
documentation purposes, we need to correctly merge their attributes.
Corrected apiname xpath lookup
Improve sorting; remove enum-function distinction

Both enums and functions are now stored under a single <add> element.
Their ordering is now maintained by sorting over all possible
attributes.
Cleaned up Generator class tree

This significantly reduces the amount of duplicated code between
Generator implementations.
Renamed gloverrides.xml to overrides.xml

This aligns the name of the OpenGL overrides file with that of the
OpenGL|ES implementations.
Warn on function redefinition

A function redefinition usually stems from a bug in the OpenGL specs, or
a bug in the spec converter. The binding generator now logs a warning,
instead of crashing, when a redefinition is encountered.
Remove deprecated elements from glcore

Deprecated elements are marked as such in the compatibility profile and
are completely absent from the core profile. This is in-line with the
new glcore headers from Khronos.