feat(typegen): implement virtual fields
Closes AC-1303. Implements typegen virtual fields. Converts the hard-coded union discriminator type field into a virtual field. Adds support for defining embedded fields side-by-side with normal fields. Removes GetType()
and New<AccountType>()
.
Virtual fields are implemented as getter methods instead of actual fields, but they are still marshalled.