Made glfw window creation use a proper builder pattern

The main reason I changed this stuff yet again is that I tried to actually used it, and found it to be too restricted in practice. ;)

Specifically, with the previous `create_default_window()` it was impossible to add additional window hints to glfw, like for example making the window re-sizable.

With the new design, you can specify common window hints that should be applied regardless of which setup lead to an window creation, and you can also add custom fallbacks before and after the provided shortcut function.
I thought about that, but I had the feeling people would not like that :). Besides, it seems you end up with the most current version anyway if you request a lower versions, unless you are on OS X and request 2.1 or lower.

I was also not sure if it _should_ try higher than 3.2, due to backwards compatibility and such? Or did no functionality get deprecated between 3.2 and 4.4?