Don't run unset on IntField if the value is 0 (zero).
Fix the implementation.
Don't run unset on IntField if the value is 0 (zero).

The IntField in unset if the IntField value doesn't validate to "truthify" (therefore, is
set as 0) and the default value of the IntField in question is 0.
This is not a logical functionality in my opinion. Take this example.
You have an IntField that is a counter which can be incremented and
decremented. This counter has the default value of 0 and is a required
field. Every time the counter reaches 0, the field is unset.
Merge remote-tracking branch 'origin/pr/272'
Fixing cloning in python 3