Add support for defining the criterion by LoC

Now we have three cases to consider:
 - Specify the slicing criterion by the filename and line number
 - Specify the slicing criterion by the LLVM:Instruction count
 - Don't specify the criterion. The default is the first ret in main

We consider them one-by-one. Thus the priority is then implict.
Add CRITERION variable in the UniteTests template

Now we can define the per-program criterion in the Makefile before
including this tempalte.
Add the loc.txt and inst.txt for test4

Now we tested all the three cases of specifying the criterion.
Refactor the source line mapping pass

This pass can be called with a command line option '-mapping-function',
defining the function to be mapped. The output includes the instruction
number, instruction dump, and the source file and line number.

If no mapping function is supplied, we then iterate all the functions of
the module, ignoring the debug and external function calls, of course.
Add mapping target for Makefile.common in tests

This target is for mapping instruction of functions to its respective
number and source line number. This is very helpful for users if they
would like to slicing using -criterion-inst command line.