Fix validate_on_save class decorator

1.  Change the storategy of the validate_on_save
    It is a class decorator so the default behavior should be ON and
    settings should turn OFF the behavior
2.  Fix the internal storategy
    There were too many problem so I change the internal storategy
    completely
3.  Fix the tests
    The test storategy was not really correct