fix vm overflow

I hope those are the last overflow bugs in the vm. The tests cause the client to crash with a segmentation fault, this PR fixes that.
Also included the performance tests from Artur.
Can calldatacopy fall through to codecopy? They look the same. It also looks like it maybe possible to abstract the offset and source-data logic so that the case only sets the offset and there's only a single memcpy (not sure it's cleaner).