Convert floats to integers using doubles and 64-bit integers.
Convert floats to integers using doubles and 64-bit integers.

Avoids some edge cases that overflow or round incorrectly.

Fixes:
dEQP-GLES2.functional.state_query.floats.depth_range_getinteger
dEQP-GLES2.functional.state_query.floats.color_clear_value_getinteger
dEQP-GLES2.functional.state_query.floats.depth_clear_value_getinteger

Change-Id: Ib2c7f422dac76094c7ff6c5f8aef3fd392f68e80
Reviewed-on: https://chromium-review.googlesource.com/268510
Reviewed-by: Jamie Madill <7e492b4f1c8458024932de3ba475cbf015424c30@chromium.org>
Reviewed-by: Corentin Wallez <470c533e86f4f848c98c7e11fffc2d043494a401@chromium.org>
Tested-by: Geoff Lang <b6fc25fe0362055230985c05cbfa8adb741ccc0f@chromium.org>

mybios/angle,csa7mdm/angle,mybios/angle,vvuk/angle,mrobinson/rust-angle,ppy/angle,crezefire/angle,crezefire/angle,bsergean/angle,larsbergstrom/angle,mlfarrell/angle,ghostoy/angle,MSOpenTech/angle,ghostoy/angle,bsergean/angle,mlfarrell/angle,mikolalysenko/angle,ghostoy/angle,mikolalysenko/angle,MSOpenTech/angle,vvuk/angle,MSOpenTech/angle,ecoal95/angle,bsergean/angle,larsbergstrom/angle,larsbergstrom/angle,ghostoy/angle,ppy/angle,csa7mdm/angle,mybios/angle,ecoal95/angle,ecoal95/angle,mrobinson/rust-angle,mrobinson/rust-angle,ecoal95/angle,vvuk/angle,mlfarrell/angle,csa7mdm/angle,larsbergstrom/angle,crezefire/angle,vvuk/angle,domokit/waterfall,ppy/angle,mybios/angle,mikolalysenko/angle,mikolalysenko/angle,ecoal95/angle,bsergean/angle,mrobinson/rust-angle,csa7mdm/angle,domokit/waterfall,mrobinson/rust-angle,MSOpenTech/angle,crezefire/angle,mlfarrell/angle,ppy/angle