Fix line number issue

The current line numer implementation doesn't give the good result
(ie while stepping "1 printNl"). Sometimes it gives a bad instruction
pointer (ie the line number value is 0). The new implementation uses
the ip to get the next instruction and not the previous, and the line
number computation is changed the current line is changed the first
bytecode after a line number bc is met. It's needed because the ip
could point to a line number bc and give the next line number.