mediacodec: Render directly to the output surface

Pass opaque buffers through the pipeline, calling a callback in the vout
to render them.

Issues:
- The vout needs to provide roughly > 30 buffers in order to be
  connected directly to the decoder without any separate buffer
  pool inbetween (that might or might not handle the extra hacky
  video format)
- We can't start the decoder until the surface actually exists and
  is ready to be used.
- Stuff commented out in src/input/decoder.c: Since we don't return
  buffers to the decoder until we render them (or release them),
  we can't do the preroll buffering as normally, because otherwise
  the decoder would stop when it runs out of free output buffers.

When testing, it freezes a little at the startup but then plays
pretty well, with good AV sync.