Remove unused SDL2 surface in compat code

mupen64plus doesn't support 2D video output because it forces OPENGL mode.
Unfortunately, the rest of the compat code still assumes that surfaces for 2D
data are used and overwrites the data when the window is changed.

The surface code can be removed to avoid these problems.
Close SDL2 window when quitting Video subsystem

SDL2 doesn't close windows anymore when the video subsystem is closed.
Therefore, the window created by the SDL2 compat layer has to be closed
manually to avoid orphan windows in frontends like m64py in non-VidExt mode.
Merge pull request #7 from ecsv/sdl2_compat

Cleanup SDL2 compat code to avoid problems in non-VidExt m64py
Zuzma says that Hydro Thunder plays without freezing if the CountPerOp is set to 1
Avoid SDL_GetWindowSurface to fix crashes on wayland

Instead of trying to access the wayland window through SDL_GetWindowSurface,
it seems to be easier to just use a pseudo surface which is not really used by
anyone (except the size information).
Save link information in *AL(L) instructions unconditionally

All "Jump and link" and "Branch and link" like instructions save the PC in the
target register unconditionally and not only when the branch/jump is taken.
The specification is not clear whether the store is actually made before or
after the delay slot and therefore the behavior of the dynarecs ("link" before
delay slot) is used.

Reported-by: Nebuleon <nebuleon.fumika@gmail.com>
Merge pull request #8 from ecsv/sdl2_compat

Avoid SDL_GetWindowSurface to fix crashes on wayland
Merge pull request #9 from ecsv/interpreter_link

Save link information in *AL(L) instructions unconditionally