Ax + b modifies operands
This code:
```
import arraymancer

let x = @[4.0].to_tensor
var A = @[1.0].to_tensor.reshape(1,1)
var b = zeros[float](1);

echo b.to_raw_seq
for _ in 0..4:
  discard (A * x) + b
  echo b.to_raw_seq
```

Mutates `b` and has this output:
```
@[0.0]
@[4.0]
@[8.0]
@[12.0]
@[16.0]
@[20.0]
```

I would expect `b` to not change from `A*x + b`? Some other tests:

 - `x + b` — `b` is unchanged.
 - `b + (A*x)` — `b` is unchanged.