Added sketch for VM

DO NOT MERGE
This is just a sketch.
Please comment.
Idea for packed encoding allowing `sizeof(v7_strlen_t) + sizeof(char*) - 1` bytes inline:

If the len field is odd, is interpreted as a packed string. The first/last len byte >> 1 is interpreted as a size 0 - 127, and the remaining `sizeof(v7_strlen_t) + sizeof(char*) - 1` (15 bytes in 64 bit archs) can be stored in subsequent/previous bytes.

Also it would work with any field order. The advantage of your original field order is that we could have some trailing space at the end of the struct to inline some more bytes.

Let's measure some real payload and see what is the distribution of string lengths.