Added sketch for VM

DO NOT MERGE
This is just a sketch.
Please comment.
In most cases we want to preserve the existing property attribute, if the property exists. Should we have a `v7_set_property_value` function ? Or should we rename this function to `v7_add_property` and have `v7_set_property` be the one that updates the property (adding one with the default attributes if it's missing) ?