Add ability to create video frames, where all lines will be X-bytes memory aligned.

This would create a frame, whose strides may not always match its width.
Disabled at present, as our rendering code doesn’t always properly display those (only Xv, Qt and VDPAU handle those properly). OpenGL being the most problematic.
For a YV12/YV420P frame to be properly aligned, a value of 64 needs to be used (so chroma planes are 16 bytes aligned).
Add NV12 format support to VideoFrame class, and fast NV12->YV12 format conversion

Include SSE optimised NV12->YV12 conversion routine.
SSE deinterleaver is 687% faster on my i7-2600 than the C version.

Add related unit tests and benchmarks
Add VAAPI vaDerive support, and re-add NV12 image format support

vaDerive provides a greater level of performance than vaGetImage, however there’s an added cost of having to convert NV12 into YV12 later which in practice negates the benefit.

Re-add NV12 support, but as least preferred format.
Fix strides size calculation for YV12/NV12 frames when the dimensions are odd.

Make sure to get the very last chroma component for each row.