Fixes particle system

Now all graphics systems use the fallback method. This should
technically be a temporary fix until the original maintainer (forthevin)
fixes all the individual graphics systems.
The fallback actually could be a good thing for all systems as a
permanent solution, because all the systems use sprite batching. This
means all the particles will be using one draw call anyway. But this
needs to be tested.

Also added draw_get_blend_mode* functions. These were actually some of
the functions I wanted for a long time, but never got around to
implementing them. They were needed in the particle system fix.
The way I implemented them kind of sucks though. Maybe someone else has
a better solution?
Fixed string_width_ext_line and in turn alignment

string_width_ext_line was broken because of the new Unicode changes and
as that function is used when drawing centered text, then that was
broken as well.
It was written 3 years ago and I now see how it might be done better, as
the second "for loop" creates a situation where it goes text over twice.
Maybe later I or someone else can fix that.
Also that "; else;" Josh added 3 years ago was funny. :D To fix compiler
warning Josh didn't want to add braces, so he added a second else.
Fixes batching in particle system

-Added blend mode caching so it doesn't change state whenever useless
blend mode function is called. This greatly speeds up GL3  and is on par
with GL1 and DX9.
-Added another hint to models - now they can be static, dynamic and
streaming. By default the batcher is streaming.
-Removed some ARB's from functions. They shouldn't be needed, as we use
many non-ARB functions which are dependent on the previously ARB ones.
So if the user could run the game previously, they should be able to run
it now.
-Removed some slow glGet from GL3ModelStruct.
Fix GL1

Fixed undefined reference in GL1.
Made same changes to DX11

Added the same modelstruct changes to DX11. It still doesn't compile
(because I don't think it's supposed to), but at least it doesn't error
because of the changes I made.
Merge pull request #698 from enigma-dev/particle_fix

Particle system fix and font fixes