lavf: add AVFMT_FLAG_BITEXACT.

Use it instead of checking CODEC_FLAG_BITEXACT in the first stream's
codec context.

Using codec options inside lavf is fragile and can easily break when the
muxing codec context is not the encoding context.
lavf: drop the zero-sized packets hack

There should not be any valid reason anymore for passing completely
empty packets to lavf.
OTOH side data-only packets can be useful.
lavc: preserve the original private data in avcodec_copy_context()

If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
lavc: properly handle subtitle_header in avcodec_copy_context()
Fix make checkheaders if VDA is not available.
Merge commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52'

* commit '0c1959b056f6ccaa2eee2c824352ba93c8e36d52':
  lavf: add AVFMT_FLAG_BITEXACT.

Conflicts:
	doc/APIchanges
	libavformat/avformat.h
	libavformat/flacenc.c
	libavformat/movenc.c
	libavformat/oggenc.c
	libavformat/options_table.h
	libavformat/version.h
	tests/fate/video.mak

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

* commit 'c9281a01b78cc3f09e36300a0ca3f5824d1c74cf':
  lavf: drop the zero-sized packets hack

Conflicts:
	libavformat/mux.c

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

* commit 'efc7df6c1f11b20a48e60c3f743ce2331b661973':
  lavc: preserve the original private data in avcodec_copy_context()

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

* commit '3b2fbe67bd63b00331db2a9b213f6d420418a312':
  lavc: properly handle subtitle_header in avcodec_copy_context()

Conflicts:
	libavcodec/options.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
avcodec/options: avcodec_copy_context() Check subtitle_header_size instead of setting it

The value is already copied in the generic code so it should always match

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>