__iter__, has_key, __contains__, clear, & len all copy the __keys list but don't need to.
Minor backward compatibility change: make __iter__ generate a runtime error if the user attempts to destructively modify the SON during iteration just as dict does and have the others directly use the internal list.
Fix is in https://github.com/mongodb/mongo-python-driver/pull/238