Fix problem with assignment hazards based on luajit

Assignment hazard occurs in case like:
t[i], t = 3, 5
or
t[i], i = 3, 5

To respect semantic of assignement from left to right a temporary variable
is used when needed.

Implementation based on lj_parse.c from luajit source code.
Add simple tests for assignement hazards