weightp: use struct to cache data for reuse, refactor MC of reference planes

* do not consider intra/mv cost during MC phase
* unconditionally motion-compensate luma and chroma blocks
* include slice header cost estimate in weight analysis
* weightCost() needed different paths for luma, chroma, and chroma444
* pass a single stride to weightCost()
asm: split SAO_EO_0 into separate primitive func

added assembly code and testbench support
added loopfilter.cpp, loopfilter.h, loopfilter.asm files