* make push dynamically-charged. charge witness gas costs for push. refactor evm witness gas charging to move logic for touching a range of bytecode into a helper method 'touchEachChunksAndChargeGas'
* add witness gas calculation for CodeCopy, ExtCodeCopy, SLoad back to gas_table.go
* witness gas charging for CALL
* remove explicit reference to evm.TxContext
* core/vm: make touchEachChunksAndCharge gas handle nil code value
* core/vm: call implementation, separate out witnesses into touch/set
* some fixes
* remove witness touching from opCall: this will go in evm.go
* remove witness touching for call from gas_table.go
* (hopefully) fix tests
* add SSTORE witness charging that was removed mistakenly
* charge witness gas for call
* clean up and comment touchEachChunksAndChargeGas
* make suggested changes
* address remaining points
* fix build issues
* remove double-charging for contract creation witness gas charging