aarch64: pixel metrics NEON asm

Ported from the ARM NEON asm.
aarch64: quantization and level-run NEON asm

Ported from the ARM NEON asm.
aarch64: transform and zigzag NEON asm

Ported from the ARM NEON asm.
aarch64: motion compensation NEON asm

Ported from the ARM NEON asm.
aarch64: intra predition NEON asm

Ported from the ARM NEON asm.
aarch64: deblocking NEON asm

Deblock chroma/luma are based on libav's h264 aarch64 NEON deblocking
filter which was ported by me from the existing ARM NEON asm. No
additional persons to ask for a relicense.
OpenCL: Reduce binary size

The source code of the OpenCL kernels is stored as a string in the x264 binary
and compiled at run time. Shrink this string by removing as many redundant
non-token characters as possible.

Reduces the x264 binary size by 20 kB.
checkasm: Only call x264_cpu_detect() once
x86: Faster quant_4x4x4

Also drop the MMX version instead of doing a bunch of ifdeffery to support it after this change.
x86: Minor pixel_ssim_end4 improvements

Reduce the number of vector registers used from 7 to 5.
Eliminate some moves in the AVX implementation.
Avoid bypass delays for transitioning between int and float domains.
x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags

Previously there was a limit of two cpuflags.
Update to the current lavf API and fix memory leak when using --seek
Fix memory leak when using select_every filter
Add support --chapter/--no-container-sar/--no-remux/--fragments.

These are L-SMASH MP4 muxer specific options.
Increase the temporal buffer size for Unicode support

Although the maximum size of one character in UTF-16 is 4bytes,
sizeof(wchar_t) is 2bytes on Windows.
Also, non-ASCII characters requires 2bytes in ANSI code page.
The existing buffer size is insufficient.
Film Grain Optimization
Fade Compensation
Log file
Encoding time
Cosmetic