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.