Writes some tests for approving the support of mutual recursion in interpreter
backup
Implement four instructions for integer arithmetic operations
Fix a bug in function `is_with_label'
Reimplements the RETURN instruction for processing the mutual recursion
Fix the bug of FJUMP, TJUMP and SAVE

In FJUMP and TJUMP: If the predicates on the element as top of stack
is failed, the program counter, `pc' should increased by one for
moving forward, but not stay still.

In SAVE: The program counter sotres in object of type RETURN_INFO is
the integer indicates by label.
Remove the useless comments
Move the assembler part out from file vm.c to become a independent module
Add a field `arity' for storing the number of arguments of an instruction
Use a data-driven way for judging the arity of an instruction
Removes some unnecessary comments
Fix a bug when replacing the label in some instructions

When call a function recursively multiple times, the label part in
instructions like JUMP, FJUMP, TJUMP and SAVE should not be replaced
more than twice. However, this is just a ugly hack for the source
code. The normal solution is to assemble the byte-code only once in
the compilation step.
Misc modification
Merge branch 'feature-prim-instructions' into develop
An trivial support for detecting unbound variable
Add a trivial support for input stream made from string
backup
Add the variable `global_env' for representing the real global environment
Remove the uses of reference-count garbage collection
Remove the field `prev' in type `struct lisp_object_t'