mark `inst.errors` to null when valid success

Also:
1. make `model.isValid` act like normal node.js async function
2. make `beforeValidate` breakable