Fix empty field check
This PR make that the empty check code in custom json.Marshaler to emulate the behavior of omitempty is generated correctly. Empty field determination will be performed even in read-only properties. Furthermore, when x-go-type-skip-optional-pointer is specified, empty field check is performed correctly according to the field type. However, since code generation may not be possible correctly when x-go-type is specified, the condition of empty field can be overridden with x-empty-value. Possible values for x-empty-value are "never", "false", "0", "nil", and "len0". In the case of "false", "0", and "nil", this value is compared with field value to determine that this field is empty. And in case “len0”, it is judged to be an empty field when the length is 0. If the field is always not empty, specify "never".
This PR fix for #1236 and #1302