Move -[setValue:forKey:] to OFDictionary

If this is only overridden in OFMutableDictionary, this would lead to
inconsistent behavior, as it could be called on an OFDictionary as well
due to the fact that -[setValue:forKey:] is defined in OFObject.
Instead, if the dictionary is immutable, an OFUndefinedKeyException is
thrown.