Added projection_stack, fixed sliders and more

-Added d3d_projection_stack_* functions. They were required for
surface_reset_target() to work correctly and not require the user to
manually reset the projection matrix. Also, viewport_ is saved in
variables, so surface reset can reset it as well. This fixes many
fringe'y surface bugs.
-Sliders now take minimum value correctly into account. Also, callback
function/script is called every step while the slider is dragged. For
sliders it make more sense this way (previously it was called only on
*release* which doesn't make any sense at all).
-A possibly faster d3d_projection_stack_clear and
d3d_transformation_stack_clear.