fix keyNotInSchema messages to display the key that was tried instead of "undefined" in the validation message
simplify some code
complete rewrite of validation logic to solve an issue and simplify
bump version