Renamed _pendingFieldValidation to _pendingEventValidation
[breaking] Made form.validate() support dual sync/async usage

form.validate() no longer takes an optional form argument
Added form.isAsync()
form.isComplete() is now false if the form is pending async validation

Replaced a bunch of remaining for..in/hasOwn with Object.keys