getPartProperty

Return an arbitrary property from the reference. If the part has been
instantiated, it just delegates to the part. If not, then it looks in its
own cache of properties. If the property is not available or the part has
never been instantiated, it can return null.