Remove scoped enums

In C the constants defined with enum reside in the global scope, but in D every named enum creates a new scope.
To imitate the C behavior, I converted each named enum in an anonymous enum and defined a new type to replace the removed names.
I think this is the correct approach to keep a 1:1 correspondence between C and D headers.
(btw I found a couple of redefined constants in different enums and a lot of names (see X.d) used for enums with no correspondence at all in the C headers)

Before:
XInternAtom(display, cast(char*) "WM_DELETE_WINDOW", Bool.False);
XSelectInput(display, window, EventMask.ExposureMask | EventMask.KeymapStateMask);

After (same as C):
XInternAtom(display, cast(char*) "WM_DELETE_WINDOW", False);
XSelectInput(display, window, ExposureMask | KeymapStateMask);