webadmin: Element IDs in System Tree and Tags

1. Added TreeNodeInfo interface which acts as adapter for providing
   tree node information, all models and model-like classes used
   in CellTree widgets implement this interface.

2. Updated ElementIdUtils.createTreeCellElementId() to support IDs
   in case of single root node, methods which calculate node index
   now use equals() instead of comparing references.

3. Fixed SystemTreeItemModel hierarchy mismatch in SystemTreeModel
   (different child nodes now correctly refer to their parents).

4. Added {get|set}Parent() methods in TagModel due to TreeNodeInfo
   interface, updated TagListModel to reflect parent relationship.

5. Fixed CellTree.Resources being GWT.create()'d for each instance.

6. Fixed CellTree cells being created each time when TreeViewModel
   getNodeInfo() is called, the core principle of cell widgets is
   to use single (flyweight, reusable, stateless) cell to do the
   rendering.

7. Methods to deal with CellTree moved away from TagModelProvider
   directly into TagList (widget managing the CellTree) class.

Example System Tree (node) element ID:
   SystemTree_display_root0_node1_node0 --> label
   (root0 = System, node1 = 2nd DataCenter, node0 = 1st Storage)

Example Tag (node) element ID:
   TagList_display_label_root0_node0 --> label
   TagList_display_pinButton_root0_node0 --> pin tag button
   (root0 = Root, node0 = 1st Tag)

Change-Id: Ie4341a4c4e1740c075987e2a57c0844fa72b971e
Signed-off-by: Vojtech Szocs <vszocs@redhat.com>