v4l2: add v4l2 wrapper for yami

= There are four threads in the wrapper library.
    - Two threads for v4l2 interface:
      one for device pool, one for device operation (deque, enque etc)
    - Two threads are internal worker to drive data input and output respectively.

= Device thread owns yami encoder before input/output thread launch and
  after input/output thread exit.
= encoder->stop() defers to device _close() instead of STREAMOFF ioctl.
= Dynamic encoder parameter change (bitrate/framerate etc) are accepted
  in device operation thread, and executed in input thread, with mutex lock.
= Add mutex locker for encoder (factory) cache,
  avoid thread issue when there are multiple encoders.
= assume initial buffers status are at client side.
test: add v4l2 encode test
test: v4l2encode use encodehelp.h for command line parameters