Add a test for multiple value expressions enclosed into a bracket
Fix problem with Lua's semantic of bracketed expressions

When encountering expressions enclosed in brackets like in

return (foo(x))

Lua semantic mandates that only a single value should be retained even
for expressions that can returns multiple value.

Now the rule is respected to be compliant with Lua semantic.
Add more tests for return statement
Fix problem in bytecode gen when returning multiple values

The implementation was wrong because, in case of a single formal
argument like:

> return ...

the rule expr_toanyreg was invoked thus forcing a single value return.

With this fix the method expr_tomultireg is always invoked. The only
exception is when a single local variable is returned. In this case we
avoid expr_tomultireg to emit more optimal bytecode closer to luajit.
Cosmetic change to rename comparison operators lookup table
Add a specific test to reveal the bug with rbase jump instructions
Fix the list of "expect" files for rbase jump operand
Optimize bytecode generation for empty tables
Fix the error in rbase jump operand for logical expressions

To fix the problem a major change in the calling arguments was
required for methods expr_toreg and test_emit. In addition the
method expr_tonextreg is introduced to simplify the logic of
the code.

Essentially the methods expr_toreg and test_emit gets a new
argument "jreg" that indicates the next free register a
logical expression should jump to when a store is done.
The argument "jreg" will be equal to "freereg" if the current
expr_toreg is going to write of an register already allocated.
Otherwise, if expr_toreg is going to write to a new register
"jreg" will point to the next register.

Now the rbase argument for the JMP instructions is always
supposed to be correct and to be the same of those generated
by luajit.
Cosmetic cleanup of emit_call_expression

Avoid using "free" and "base" to alias the same value and use
"expr_tonextreg" when appropriate.