Fix ugly bug with odicti.__setitem__

The previous version of __setitem__ called base.__setitem__ after
deleting the key from the base dictionary but without deleting it from
the case-storage dictionary which is used for __contains__ checks. It so
happens that OrderedDict.__setitem__ uses __contains__ checks which lead
to a terrible error.
Merge branch 'fix-setitem-bug'