Thread timeout settable, keyboard, mouse detection info

ofAppEGLWindow calls `waitForThread` which by default has an infinite timeout. This can causes certain apps to hang indefinitely. This gives the user an option to set the timeout

This also adds 2 methods `hasMouse()` and `hasKeyboard()` so an app can tell whether a mouse/keyboard have been detected. This can be useful in writing examples for different configurations 
i.e 
````
ofAppEGLWindow *appEGLWindow = (ofAppEGLWindow *) ofGetWindowPtr();
if(appEGLWindow->hasMouse()) x = mouseX;
````