RobotLink: allow subclassing and optionally display link properties in tree


This adds flexibility to the list of link properties.

1) optionally (user control) show links in a tree instead of a list
2) optionally (user control) show joints and/or links instead of only links
3) allow subclassing RobotLink and RobotJoint via setLinkFactory()