Merge pull request #297 from RobertBColton/master

Direct3D 9 Bug Fixes *Merge*
Merge pull request #299 from RobertBColton/master

Graphics Systems Deprecation and HLSL *Merge*
Text and surfaces are in VBO now and bug fixes

-All draw_text and draw_surface functions are now using batching with
VBO.
-Fixed surface_set_target() so it works even when called in succession
without surface_reset_target() (often done).
-Added VBO clearing in blend mode functions. Will probably change later.
-Removed GLEW_EXT_framebuffer_object checks from GL3, as not supporting
FBO is not really an option in GL3.
-Added back surfaces changes which Robert reverted.
-Fixed sprite_width, sprite_height, sprite_xoffset and sprite_yoffset to
take into account scaling (just like GM, although its documentation
doesn't say that).
Fixed up GL3 models and in turn primitives

-Made changes to GL3 models, so they don't crash the whole engine. Right
now they are quite a mess and adding these little fixes are not making
it any prettier, so it must be rewritten.
-By fixing models I also fixed primitives, which were segfaulting in all
manner of places, but mostly when used inside surfaces.
-Fixed GL3 fonts, so they draw with bound color and alpha. I also
changed many things to gs_scalar (including some int's) in hopes of
higher precision... ended up just making them look worse. Should really
figure out why that is.
Merge pull request #300 from RobertBColton/master

Finished DirectSound *Merge*
Merge pull request #301 from RobertBColton/master

XAudio 2.0 Shell *Merge*
Merge pull request #302 from RobertBColton/master

XInput and Xbox 360 Controllers *Merge*
Merge pull request #303 from RobertBColton/master

Windows Joysticks *Merge*
Adds duplicate instance ID checking to debug mode.
Implements joystick_lastbutton.
Fixes new[]+delete mismatch.
Merge remote-tracking branch 'upstream/master'

Conflicts:
	ENIGMAsystem/SHELL/Graphics_Systems/OpenGL3/GL3surface.cpp