OPENGL: Fix linear filtering when the texture size doesn't match the real size

On systems where npot textures are not supported as well as when changing a texture size to a smaller texture (ie. when changing the cursor size to a smaller size), GL_LINEAR mode would create a distortion on the right and bottom sides of the texture.

This fixes the problem by recreating the texture when npot is supported and the texture size is not equal and then duplicating the last row/column of the texture when necessary.

I'm not an OpenGL expert, so I'm not sure if this is the best solution to the problem ;)