Remap registers to avoid clobbering the neon registers q4-q7

According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.

Functions that use 12 or less of the qX registers can avoid
violating the calling convention by simply using other registers instead
of the callee saved registers q4-q7.

This change only remaps the registers used within functions - therefore
this does not affect performance at all. E.g. in functions using
registers q0-q7, we now use q0-q3 and q8-q11 instead.
Push clobbered neon registers on the stack

According to the calling convention, the registers q4-q7 should be
preserved by functions. The caller (generated by the compiler) could
be using those registers anywhere for any intermediate data.

Functions that use more than 12 of the qX registers must push
the clobbered registers on the stack in order to be able to restore them
afterwards.

In functions that don't use all 16 registers, but clobber some of
the callee saved registers q4-q7, one or more of them are remapped
to reduce the number of registers that have to be saved/restored.

This incurs a very small (around 0.5%) slowdown in the decoder and
encoder.
add code coverage test.
use lcov & gcov to generate coverage report
use genhtml to generate html pages
on ubuntu: sudo apt-get install lcov will install
these two cmd lines.
remove trailing white spaces
Merge pull request #484 from licaiguo/add-gcov

Add gcov
Merge pull request #463 from mstorsjo/dont-clobber-neon-registers

Avoid clobbering the neon registers q4-q7

Review and verified by zhilwang
nzc bug fix and clear
add according to review opinion
Merge pull request #486 from huili2/nzc_bug_fix

nzc bug fix and clear
clean redundant checks in decoder
refactor ME for easier adding other search methods
Merge pull request #488 from licaiguo/clean-redundant-check

clean redundant checks in decoder
fix dump file issue
Fix a mismatched ifdef comment

This is an ifdef block for HAVE_NEON.
Merge pull request #492 from mstorsjo/fix-ifdef-comment

Fix a mismatched ifdef comment
Fix a typo in a macro name, EXTENTION -> EXTENSION
add basic me test
remove BASE_MB related code
Merge pull request #495 from sijchen/add_me_test11

[Encoder UnitTest] add basic me test
Merge pull request #493 from mstorsjo/fix-macro-typo

Fix a typo in a macro name, EXTENTION -> EXTENSION