Add some more Embed tests

Mostly to improve coverage, but there were a few bugs there too.
More tests to improve coverage.

getSpelling(unknown kind)
canCast(unknown kind)
Qualify
Unqualified
All object properties start with $

This is primarily for consistency. After this change, struct fields can
be accessed directly:

    my_struct.my_field.my_nested_field
Add convenient syntax for accessing fields

Fields can be accessed by record.field.nested_field.

In addition, the values can be set/get by using these new functions:

  module.$set(handle, record.field, new_value);
  module.$get(handle, record.field);