arm: check if the assembler supports the '.func' directive

The integrated assembler in llvm trunk (to be released as 3.5) is
otherwise capable enough to assemble the arm asm correctly.
arm/ppc: use $CC as default assembler
checkasm: add memory clobber to read_time inline asm

The memory acts as compiler barrier preventing aggressive reordering
of read_time calls. gcc 4.8 reorders some of initial read_time calls
after the second when targeting arm.
arm: do not use aligned stores in mc_weight_w4_*neon

mc_weight_w4_*neon is also used for width 2 which does not guarantee
4-byte aligned destination. Fixes crashes caused by random memory
corruption.
arm: use long multiplication in mc_weight_w*_neon

9-19% faster on a cortex-a9.
checkasm: test zigzag_sub_8x8_{frame,field}
aarch64: initial build support
aarch64: add armv8 and neon cpu flags and test them
aarch64: add utility functions for asm
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.