Fix lax_reference's round for edge case inputs (#3309)
* Fix lax_reference's round for edge case inputs
- round(8388609) would compute trunc(8388609 + 0.5) == 8388610.
Fix this by not modifying sufficiently inputs.
- round(0.499999970198) would compute trunc(0.499999970198 + 0.5) == 1.0
Fix this by explicitly special casing the first float before 0.5.
* Add explicit casts to lax_reference implementation of `round`.
Co-authored-by: Peter Hawkins <phawkins@google.com>