Adds a .visible flag to tree group entries; this allows for tree filtering without actually rebuilding the tree, preventing table churn. A tree branch will only show if there is at least one leaf node (without children) with .visible ~= false (true and nil both cause it to be shown, presuming that "true" means explicitly show, and "nil" means that there is no expressed show preference). To use filtering, :SetTree must be called with an additional boolean parameter; :SetTree(treeTable, true) will cause filtering to happen, whereas :SetTree(treeTable) or :SetTree(treeTable, false) will produce no filtering. This allows for easy switching between filtered/non-filtered modes, and preserves the widget's performance and default behavior for all non-filtered cases.
------------------------------------------------------------------------