Add option for auto defining field assignment
Add options for auto assignment of defining fields An option is added for the automatic assignment of the defining fields. Since it is found that in real usage, frequently all the fields needs to be explicitly cast into the canonical form and explicitly assigned. So the auto assignment can all be wastes. So an option is added to be used in different cases. The documentation has been updated accordingly and the version number has been jumped to 0.4.0.