PR link https://github.com/FreeCAD/FreeCAD/pull/2995
A new property is added PropertyXLinkList, which provides compatible API to PropertyLinkList, with additional support of external object. This property is actually derived from PropertyXLinkSubList, and works exactly the same, except that its Python output is made compatible with PropertyLinkList, if there is no sub element reference in the property.
Another big part of the PR is for refactoring DlgPropertyLink, the dialog for editing link property from property view. It can now handle all major classes of link properties. The dialog is made modeless, so that the user can select reference from 3D view directly for sub element references.