Improve the scope management in bytecode generator

Inspired by the changes made in Nyanga by Richard Hundt.

The upvalue closing code was moved to the generator instead of the op_retx
instruction to improve code logic.
Move code to register variables as upvalue in generator module

Avoid mixing instruction generation with variable classification as
upvalues.
Rename proto method close_block_uvals to close_block
Add command line options for to run the bytecode compiler.

The option "-b" is implemented to optionally print bytecode dump.
Add python script to perform automatic tests

The script execute each test using the bytecode compiler and compare the
output with the result obtained using LuaJIT2 directly.
Fix a couple of tests and add a test with a sorting algorithm
Fix line number information for function prototypes
Improve the implement to generate expressions in bytecode generator

Differentiate the rules the generate single or multiple values and
introduce a specific function expr_toanyreg to store expression without
explicit register destination.
Add some more generic tests
Modify behaviour on -b flag to print only the bytecode
Modify output testing script to print the test results directly
Implement automated tests for the bytecode output
Improve one of the logical values test
Modify .gitignore to avoid showing files generated by test script
Modify test suite to write output bytecode in log directory
Improve logical test from the test suite
Add expect bytecode files for the test suite

The expect files cover some know differences with LuaJIT2 in the
generated bytecode.
Rename test suite scripts
Fix expect test for logical-tests-4b.lua
Improve UCLO code generation by using scope-specific informations