Scaling Fixes

* All platforms now utilize only 1 window by default.
* Scaling options work for all platforms now. They are emulated by scaling viewports to the correct area of the window and emulating the window background color.
* Several window glitches are now resolved such as #749 Though it is important to note that a minimum window size was implemented for when the user uses a fixed scale ratio such as 100%, just like GM8.1 in will stop you from even being able to resize smaller than the preferred size. Implemented via the following Win32 window message.
http://msdn.microsoft.com/en-us/library/ms632626%28v=vs.85%29.aspx
* Extensions that utilize window_handle() should work now resolving #820
* Fixes window_get_width()/window_get_x() and related functions they are supposed to return the actual width and position of the window when in fullscreen and not its regular minimized state. Tested on both GM: Studio and GM8.1, though Studio appears to report the native value because X will be -32000 when the game window is minimized this is what GetWindowRect reports, GM8.1 will report the regular state of the window dimensions when it is minimized, suggesting they may just have been blocking it from being 0 back then.
* Implements [window_set_color](http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/the%20game%20window/window_set_colour.html) both natively for the Win32 platform and for each graphics bridge to clear its backbuffer area to. Also implements the global game setting.
* Fixes Win32 mouse functionality, there is actually ScreenToClient/ClientToScreen for a reason we were including the border size before and the mouse position was always slightly off.
* Views will not work on surfaces, though GM never supported that anyway. A possible solution would be to make two view functions one that translates the viewport to the scaled area and the other one just natively sets the viewport. Or we could just leave the function alone and scale only the view_* built in globals but the only problem there is that we internally use screen_set_viewport as well. I would possibly be in favor of detecting if a surface is bound or not either because once the surface target changes the view needs translated anyway. So a surface_set_viewport function would probably be best and surface_reset_target resets the screen viewport. This is all without considering the implementation of application_surface, in which case it's really not necessary to waste time worrying about this because our view function will work properly on surfaces once we use that instead of scaling the views for scaling.
* Additionally corrects formatting of various files for consistency.