Fix Add/Sub QInt8 rounding mismatch
cc @eric-k256 @dominicsymes Hello @jpienaar , seems something failed in `feedback/copybara` and I don't have access to that. Could you help me double check? Tks!
 I'm seeing

```
mlir/tosa/tests/tfl-to-tosa-pipeline.mlir:358:45: error: undefined variable: VAL_0
// CHECK: %[[VAL_3:.*]] = "tosa.rescale"(%[[VAL_0]]) {double_round = false, input_zp = 128 : i32, multiplier = array<i32: 1073741824>, output_zp = 0 : i32, per_channel = false, scale32 = true, shift = array<i32: 30>}
                                            ^
```

on internal result. > 

got it. will fix it soon. Still see failure tosa/tests/tfl-to-tosa-pipeline.mlir:390:45 and :358 There's one environment difference between our setup and github: we were not setting the `--enable-var-scope` in FileCheck which was causing the failing test cases can still pass on our side.  With the new patch set, everything should be ok now. 
- Align legalization of quantized add/subtract. Previous legalization optimized out a left shift that led to rounding differences when double_rounding was being used by the TFLite runtime. [[Link to the TFL Reference](https://github.com/tensorflow/tensorflow/blob/3a5142f28393e98af720128b31feebc4a6e47a84/tensorflow/lite/kernels/add.cc#L172)]
- Support different rounding modes to buildRescaleFromInt32, buildRescaleToInt32