Fix handling of protected objects

* Unprotect objects before changing `UpValues` and protect them afterward in `WithOrdinaryObjectSet`.
* Don't duplicate warning messages informing about inability of changing protected objects in `setMember`, `bindMember` and `unsetMember`.
* Add tests for above changes.

Fixes #1.