OpenGL: Optimize writing packed images to pixel buffer

pack_yv12interlaced() packs pixels and writes them to an OpenGL
pixel buffer object.  This buffer may reside on the graphics card
so writes may be slower than to RAM.  Combining writes to the buffer
can improve performance by 200-300%.

This patch also provides optimized non-mmx code and also tightens
const correctness.

Signed-off-by: Lawrence Rust <lvr@softsystem.co.uk>

Refs: #10922