[#70499718] Core::Vm integration tests

This is quite a big story, so I'm pushing up where I am so far.

Please have a read and comment -- but be aware that this is likely to need rebasing before merge so be careful to comment on line numbers not commits.

Not all update methods are covered yet, as highlighted by the empty contexts. Feel free to suggest further tests for each method tested.

I've organised commits on a per-method-to-test basis, so it's easy to review on a commit basis.