Well, are you planning to do a lot of multi threaded things that could take a significant amount of time to finish?
If you can't tell now, you can take the i7 just to be sure or go with the option to upgrade the CPU somewhen down the road.
Of the things you listed, only VMs have the potential of benefitting greatly from multithreading, but it depends largely of what you are doing within these VMs. Compiling can benefit as well, but it also depends very much on what kind of coding you are doing. Since we use dedicated regression test servers for integration tests and upwards, I never compile huge projects locally.
Other common reasons to get big multithreaded performance are rendering and compressing/decompressing or encoding/decoding. If you don't do these things on a relevant scale, I'd rather go with the i5.