lavc: remove the locking code in avcodec_close()

This function should not modify any global state, so there should be no
reason for any locking.
lavc: add avcodec_free_context().

Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.

The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
4xm: allocate extradata properly.

Pad it with the required amount of zeros, check for malloc failure.
a64: remove unneeded struct qualifier
a64: check that extradata exists before reading from it
yuv4mpeg: split the demuxer and muxer into separate files
yuv4mpegdec: do not set coded_frame properties

coded_frame is not meant to be changed from outside of lavc, and is not
used for decoding.
Set AVCodecContext.field_order instead.
yop: only set extradata size after it has been successfully allocated

Do not leave a non-zero extradata_size set on failure
avienc: sanitize variable naming in write_header()

Do not call an AVCodecContext 'stream', that is highly confusing.
Also, add a local variable for the current AVStream in the loop over all
streams.
lavf: extend avg_frame_rate documentation.
avconv: set output avg_frame_rate when known
dv: do not set codec timebase

It is not supposed to be set from outside of libavcodec.
Set average framerate instead.
Merge commit 'e1b66778b6ee82a192b5895e23c4e135f7269326'

* commit 'e1b66778b6ee82a192b5895e23c4e135f7269326':
  lavc: remove the locking code in avcodec_close()

Conflicts:
	libavcodec/utils.c

Note, if someone knows of a external codec lib/API, hwaccel or other that requires
locking on its close/free side, please contact ffmpeg-devel.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'fd056029f45a9f6d213d9fce8165632042511d4f'

* commit 'fd056029f45a9f6d213d9fce8165632042511d4f':
  lavc: add avcodec_free_context().

Conflicts:
	doc/APIchanges
	libavcodec/version.h

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'd256ed78ffe202a4dcc8d625becffc716bfa3977'

* commit 'd256ed78ffe202a4dcc8d625becffc716bfa3977':
  4xm: allocate extradata properly.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'b136564909adec2043be4c94ade08b67ad443124'

* commit 'b136564909adec2043be4c94ade08b67ad443124':
  a64: remove unneeded struct qualifier

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit '3ef6c5264b2590781b4ed556443ff49709dd45fb'

* commit '3ef6c5264b2590781b4ed556443ff49709dd45fb':
  a64: check that extradata exists before reading from it

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'e4dc1000d7bbbcb5b45cf9849fc5315f19578e37'

* commit 'e4dc1000d7bbbcb5b45cf9849fc5315f19578e37':
  yuv4mpeg: split the demuxer and muxer into separate files

Conflicts:
	libavformat/yuv4mpegdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'b513bf6f69e26e724de6d5dca642c3582dcd0517'

* commit 'b513bf6f69e26e724de6d5dca642c3582dcd0517':
  yuv4mpegdec: do not set coded_frame properties

Conflicts:
	libavformat/yuv4mpegdec.c

See: b45a3e167f497d82effbf8ada453ea47b0ee21da
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Merge commit 'ab3fdaa7131e2fd8e33006daea25a282724c01f0'

* commit 'ab3fdaa7131e2fd8e33006daea25a282724c01f0':
  yop: only set extradata size after it has been successfully allocated

Conflicts:
	libavformat/yop.c

See: a807c68253b02cce8b9fbc87d7857c31d531a1ee
Merged-by: Michael Niedermayer <michaelni@gmx.at>