Allow the JSON serializer to include public instance fields in the output in addition to public properties, controlled by the new JsonSerializeOptions.IncludePublicFields flag (default false to keep existing behaviour). Field metadata is cached per type like enum and property reflection lookups. Closes #3920