* Add nillable data types to models
Only REQUIRED and NOT NULLABLE variables can NOT have type Nil
All OPTIONAL and NULLABLE-REQUIRED variables have type Nil
Only NULLABLE-REQUIRED variables should emit keys with null values when they are serialized, json example: property name : String? = nil; the json representation for this property is {"name": null}
For all OPTIONAL variables having Nil values, their variable keys would be skipped during serialization. The json representation for OPTIONAL property name : String? = nil; would be: {}
* Fix failed tests in samples/client/petstore/crystal/spec/api/pet_api_spec.cr
* Remove isNullable from model template
* No need to check nillability of required property
For any required property, assigning nil value to it will result in compilation error
The datatype simply can not hold value nil, so there's no need to check it
* Place required vars first in initializor
* Refresh generated sample code for crystal client
* Required properties are not nillable
* Fix compilation error of undefined method equal?
Crystal lang doesn't have method equal?
We should use method same? instead of ruby's equal? method
Reference: https://crystal-lang.org/api/master/Reference.html#same?(other:Reference):Bool-instance-method
* Add tests for add_pet api endpoint with only required parameters
Setting Pet optional properties to nil values is allowed by add_pet api endpoint
* Add helper method to test compilation errors
* Add tests to Pet model
Test model initializations
Test compilation error when model is initialized without required properties
* Test required properties in json deserialization for Pet model
* [crystal][client] support authorization header
* [crystal][client] update samples
* [crystal][client] update tests
* [crystal][client] add unit test for api_client.cr