Refactoring some of the GraphicsDeviceManager and SDL2_GameWindow to properly handle user resizable windows

With an XNA 4 game, when the user resizes the window, the GraphicsDevice's back buffer is resized to match. FNA wasn't properly doing this. The device resetting/reset events should also be raised before the client size change event.

These changes refactor some of the code for ApplyChanges so that FNA now properly handles the case when a user resizes the window (predicated on them changing the #define in FNA due to SDL2 not enabling changing the resizable flag).

Testing this side by side with a blank XNA game it seems to work as expected, and it works well for my game-in-progress, but you probably should test with some real world games to ensure this doesn't negatively impact them in some way.
I think this bit here might be my only concern with the refactoring; is the PresentInterval applied after every device reset? Just want to be sure it's meant to be here and not after EndScreenDeviceChange in ApplyChanges(). Other than that, all of this seems great. I do know that @SeanColombo is using the resizable window, so I'll let him test that aspect of it using this title(s). For my games this is functionally identical.

Also, I guess the TODO right below this call is resolved, since this is the reset event they were talking about...?