Buffer the bytesused variable from struct v4l2_buffer

Starting with kernel versions 3.16, (DE)Queing of buffers has been fixed
after it was leaking data for ages. in the struct v4l2_buffer is the
bytesused element which indicates the size of the buffer. This however
gets cleared whenever the buffer gets requeued and is thus no longer
valid.

This patch copies the bytesused variable so it is available until the
next frame captured again.

Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>
Stop leaking data via struct v4l2_buffer

Before the 3.16 kernel, the v4l2_buffer was leaking data and violating
its own spec. Since 3.16 this has been corrected and after calling the
QBUF ioctl, the struct gets cleaned up.

Right now, input_uvc assumes the buffer is valid at all times. This no
longer being true, this patch removes the v4l2_buffer from the vdIn
struct. Certain values are still needed outside of this buffer however,
the length buffer in the buffer array 'mem' and the timestamp. These are
now stored in the vdIn struct.

All of this is still somewhat hackish, as a) the processing of the image
should really be done inside the uvcGrab function between the queuing
and dequeing of the buffers (or separate that into 3 functions, deq, q
and process and call them from input_uvc). b) we are still copying the
image using memcpy, which is something we don't really want and defeats
the purpose of using a mmap in the first place. Changing this however
requires some heavier re-architecting and in the end, may still not be avoided.

Signed-off-by: Olliver Schinagl <o.schinagl@ultimaker.com>