Change how schemas are validated (down to 1.02s) _vaidate_properties now avoids creating a new dict, but decodes the items 'in place'. We don't copy the schema dict and then pop items out, instead we just check that we have a valid entry for every item.