Added png saving, changed drawing functions etc.

-Added lodepng. Right now only used in surface_save functions, but will
be expanded to loading as well in near future
-Change all FBO functions to ARB. This fixed a bug where they didn't
work on an intel card. Now should work on almost everything newer than 4
years
-Fixed some drawing functions, like draw_ellipse which previously
rendered buggy
-Changed WSdialogs.h to match windows implementations definitions (open
and save dialogs have optional caption) and added that optional caption
to GTK+ widget system so it should work on Linux. This in turn fixes
compilation error on Windows
-Populated parameter_string so it's actually possible to get argv on
Windows. Implemented using vectors which should be more C++ like. Still
isn't implemented on Linux though

Things that should be more tested and that could break things:
-Changed many drawing functions which involved drawing lines to have a
0.5 pixel offset. That fixes a bug on Nvidia cards that made things like
rectangle drawing imprecise. Could lead to problems on other cards. By
some research this seemed the best option and should in theory work on
everything the same way (OpenGL standard sadly doesn't require lines to
be drawn pixel perfect the same on different implementations)
-Changed glOrhto in surface functions. This fixes a 1pixel offset bug on
Nvidia cards (both when drawing on the surface and when saving as a
file). Could create a 1pixel offset bug on other hardware. Should test.

Changes to come:
-Will change lodepng back to have decode functions and implement .png
loading in functions like sprite_add()
-Will test and fix .bmp saving. Currently still errors or outputs wrong
values on some surface sizes. Still the same behavior even when all of
the code has been changed (now implemented purely using a vector)

If anything breaks then commit fixes if possible or just revert the
nessesary parts, as I sadly can't test on Linux. Robert broke Windows a
few commits ago, so it's clearly not that big of a deal.
Fixed issue with path and output.
Merge branch 'master' into integration_testing_develop