Make OpenGL vertex shader dirty on viewport change

The OpenGL version of MonoGame uses an uniform named "posFixup"
to offset any rendering by a fraction of the viewport size. This
is required because DirectX coordinates refer to pixel centers while
OpenGL coordinates refer to pixel corners.

Whenever the render target is changed, the vertex shader is marked
dirty so that the posFixup uniform gets updated (the viewport
changes whenever the render target is changed).

This change ensures the posFixup uniform is updated whenever the
viewport changes, not only when it is changed through a render
target change.
This makes use of the offsetInBytes parameter in SetData and allows for reuse of allocated GPU memory.
Merge pull request #1175 from elisee/fix_viewport_apply_posfixup

Make OpenGL vertex shader dirty on viewport change
Merge pull request #1191 from totallyeviljake/GENA_BUFFER_OFFSET_FIX

This makes use of the offsetInBytes parameter in SetData
Merge pull request #3 from mono/develop3d

Update from develop3d