Issue 46, 47, 48, 49
1. Introduce dataclass-like syntax, as an alternative. In addition, this includes:
* Automatic conversion of python basic typed to typedpy classes
* Support for default values, in the standard Python format, i.e. a: Array[String] = ['xx', 'yy']
* the "_required" attribute is updated automatically to reflect fields with default values. In other words: if a field has a default, then it is optional in the constructor.
Backward compatibility with standard Typedpy syntax is maintained.
2. Every default value is now validated automatically by typedpy. The following code: a: Integer(minimum=10) = 5 immediately raises an appropriate exception.