Add ability to report all errors in case multiple nested types fail validation

With this change only simple type errors are reported - one will never
see an error saying that ' { "some" : "object" }' is not of type '{
"some": "schema" }'