Fix strict validation.

Fixes a bug where `model.validate(strict=True)` would never result in a strictness check as documented, because:

  * At the time of checking for rogue fields, `data` had been narrowed down to fields that exist in the model.
  * The validation error could not be raised due to a preceding exception where a list was used as a dictionary.