tryObjectEncoding() refactoring.

We also avoid to re-create an object that is already in EMBSTR encoding.
PFCOUNT: always unshare/decode the object.

This will be a non-op most of the times since the object will be
unshared / decoded, however it is more technically correct to start this
way since the object may be decoded even in the read-only code path.