Return remaining gas.
Overwrite remaining gas.
NOTE: Could cause used() gas calculation to be incorrect.
Calculates used gas since creation of GasCounter.
The interface does not handle negative or more than initialGas values.
NOTE: We can use at most initialGas and as little as 0.
An abstraction over gas counter.
It can be optimized to use numbers instead of bigint in case of small gas.