Graphics: Window position enhancements

Hello everyone,

We are working on a project that will be using Urho3D mostly in windowed mode (https://github.com/realXtend/tundra-urho3d). There will be options to go fullscreen etc. later. In any case, I was implementing storing window position and size to config file so that we can open the window with same pos/size when you reopen the application.

**Problems I encountered**
* `E_SCREENMODE` does not provide window position.
* Querying `Graphics::GetWindowPosition()` returns a `IntVector2::ZERO` if the SDL window has been destroyed.
 * This is the case when I query the position on application exit if the user has closed the window from the `[x]` button in the window frame.
* Related to above, there is no event to listen "window about to be destroyed" so that users app could query the pos/size prior to the window being destroyed.
* `SDL_WINDOWEVENT_MOVED` was not handled by the `Input` system to notify `Graphics` of pos changes.

**Proposed solution**

I have implemented all the missing parts. `GetWindowPosition()` will still return `ZERO` vec if windows has been destroyed. But the new event params in `E_SCREENMODE` and new event `E_WINDOWABOUTTOCLOSE` are there to get info about changes and let you query before window destruction.

I am new to Urho3D and don't know your coding convention and naming schema that well. I did my best to respect the existing code style. Here are parts that you might have input on, please give it and I'll fix issues. Or say this kind of feature is not needed, thats fine too :)

* Are the new `WindowPositionX/Y` Engine init param names ok?
* Are the new `P_POSITION_X/Y` param names in `E_SCREENMODE` ok (could also be `P_X/Y`)? Is `E_SCREENMODE` even the right message for this data?
* I changed `int width_/height_` to `IntVector2 size_` and added new `IntVector2 position_`, Saw no meaningful reason for not to be a vector, except readability?
* Is the new event `E_WINDOWABOUTTOCLOSE` name ok? Is it a problem in terms of the `Context*` etc. that this event is sent in dtor? Both GL and D3D9 Graphics do this if window is not closed from the `[x]` button in the window frame.
 * Futhermore this might lead into dangerouns calls into the `Graphics` subsystem while it is in its dtor. I could not think of a more elegant solution. One option is to remove this event all together, but would sure be nice to know when the windows is being destroyed.
 * This could also be a non issue as I dont know the codebase. If `Graphics::Close` is always called prior to its destruction the current code should be ok (never sent from dtor).

Would appreciate comments feedback if you need changes. Cheers...

**Edit:** Tested the code on both Windows and Ubuntu. Ubuntu will reposition the window inside desktop if any parts of it goes out of bounds (at least from the bottom). Windows does not seem to reposition it automatically.

There might be a need for a utility for checking that initial create position is inside the desktop. Note that the position.x value can be negative. I have 3 monitors and my left most monitor has negative values as my center monitor is the main monitor for the OS.