mpegvideo: make ff_release_unused_pictures() static

It is only called from one place in mpegvideo.c now. Also remove the
remove_current parameter, which is always 1.
vc1dec: move setting repeat_pict after frame_start() has been called.

This will allow removing the hacks where each decoder sets
current_picture_ptr on its own.
FATE: drop the last partial frame in the wmv8-drm test

This has already been done in eb066a4ce9e82cddb8f5af574804aa9889450b34,
but the number of frames produced from that file changed due to
timestamps changes since then.
mpegvideo: do not set current_picture_ptr in decoders

This code was originally added in
5f1948111a4920ff74e31b4284ab0200f7938539 to h263 to set decoded frame
pts to some random numbers (removed in
a1c5cc429d99216406170eac7e8352860076d3e8) and then cargo culted to other
decoders.

The code is left in h263dec for now, since some part of the decoder
(apparently OBMC) relies on the specific previous frame to be reused.
mjpegenc: write the JFIF header if the sample aspect ratio is set

MpegEncContext.aspect_ratio_info is never set for mjpeg, so this was
never written before.
mjpegenc: cosmetics, reformat jpeg_put_comments()
mjpegenc: do not pass MpegEncContext to put_huffman_table()

It only needs PutBitContext from it, so pass that directly.
mjpegenc: remove commented out never-to-be-finished WIP cruft
mjpegenc: do not pass MpegEncContext to jpeg_table_header()

Pass the three needed fields from it directly.
This will allow to deMpegEncContextize the LJPEG encoder.
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_header()

This will allow deMpegEncContextizing the LJPEG encoder.
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_picture_trailer()

This will allow deMpegEncContextizing the LJPEG encoder.
mjpegenc: do not pass MpegEncContext to ff_mjpeg_encode_dc()

This will allow deMpegEncContextizing the LJPEG encoder.
ljpegenc: deMpegEncContextize

The encoder uses almost none of the mpegvideo infrastructure, only some
fields from MpegEncContext.

The FATE results change because now an all-zero quant matrix is written
into the file. Since it is not used for anything for ljpeg, this should
not be a problem.
ljpeg: remove a commented-out line
ljpegenc: rename the encoding function.

The new name is more consistent with the rest of Libav.
ljpegenc: accept bgr24 instead of bgra

The alpha plane is not encoded.
ljpegenc: split bgr encoding into a separate function
ljpegenc: split yuv encoding into a separate function
webp: do not call av_frame_free() on the user-provided frame

Fixes double-free on error.
webp: add a special case for a huffman table with only 1 symbol

The vlc reader cannot handle 0-bit huffman codes. For most
situations WebP uses the "simple" huffman coding for this case,
but that will only handle symbols up to 255. For the LZ77 distance
codes, larger symbol values are needed, so it can happen in rare
cases that a normal huffman table is used that only has a single
symbol.