Added sketch for VM

DO NOT MERGE
This is just a sketch.
Please comment.
Public API should allow to iterate over all properties and access their values.
Let's not design it right now, and consider `v7_get_property()` an internal function.
Added V7_PRIVATE to it.

The iteration API should return property name, attributes, and value, and provide the way to get to the next property.
That's pretty much everything that `struct v7_property` has, so it sounds reasonable to just open the structure to the user. If done so, `struct v7_value` should be open too.
We could do either way - provide functions-only API (like Lua does), or open structures as well.
To be discussed.