DUI: open one class for one category

# Preface
Avoid situations presented on screenshot. Can be opened just one Class in one Category.
![image](https://cloud.githubusercontent.com/assets/8158404/4900112/f9dcf9fe-6422-11e4-90e4-7d6d275c8c9c.png)

# Solution
I think we need `IsSelected` property, that would be bound in two way mode. That's what I've done...

# Reviewers
@Benglin ,@vmoyseenko, please take a look.

Link to YouTrack:
[MAGN-5272](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5272) DUI: For one category on class can be opened at the point
Can we do this instead?

```csharp
public class LibraryWrapPanel : WrapPanel
{
    bool MakeOrClearSelection(BrowserInternalElement selectedClass)
    {
        if (currentClass != null)
        {
            if (currentClass != selectedClass)
            {
                // If 'itemIndex' is '-1', then the selection will be cleared,
                // otherwise the selection is set to the same as 'itemIndex'.
                var itemIndex = collection.IndexOf(selectedClass);
                classListView.SelectedItem = itemIndex;
                return true; // The call is handled.
            }
        }
        else
        {
            // No selection, if item is within collection, select it.
            var itemIndex = collection.IndexOf(selectedClass);
            if (itemIndex != -1)
            {
                classListView.SelectedItem = itemIndex;
                return true; // The call is handled.
            }
        }
        
        return false; // The call not handled.
    }
}

foreach (var wrapPanel in wrapPanels)
{
    if (wrapPanel.MakeOrClearSelection(selectedClass))
        e.Handled = true;
}
```

This way we can eliminate all the other methods on ```LibraryWrapPanel```, making these functionalities more self-sufficient.