Sets the name of object, or gives object a guaranteed unique
name (if name is NULL).
This function makes a copy of the provided name, so the caller
retains ownership of the name it sent.
new name of object
TRUE if the name could be set. Since Objects that have
a parent cannot be renamed, this function returns FALSE in those
MT safe. This function grabs and releases object's LOCK.