Generator handles expressions correctly.

Fixed following error:
In case of expression (a - b) / 10
the stack looks like this at the processing of '/' (right is top):
  [val of a-b, addr 0], [const 10]
As the top of the stack is not in the accumulator, the generator just
loaded addr 0 (that actually is the value of the first opCode of the
program) and performed division with addr. of const 10.

To fix this, bin_op now checks whether operand 1 OR operand 2 have
an address of 0 and if so, performs save_ac for them.
As we can't use stack.peek() in save_ac() now for setting the address
to the correct address of the new auxiliary variable, save_ac()
now has a new parameter.

Example program to test the correct behaviour for this case:
BALAN/correct/Computations1.bal
Generator doesn't perform store & load if op already in accumulator.

bin_op(..) now only performs a load, if the first operand
is not already in the accumulator and only a save, if the
second operand is.
This saves two operations in BACOM for every such situation.