DUI: collapse class details

# Preface
Clicking on an expanded class icon should collapse the list. For example, clicking on the circle should collapse the list.
![image](https://cloud.githubusercontent.com/assets/8158404/4306076/f98ef3fa-3e7d-11e4-9fb3-15cad4bf79a2.png)
The classes that were opened should be closed when the category is closed.
For example. Open Geometry > Circle. Click on Builtin functions. Click on the Geometry again >> The circle class is open. It should be closed

# Reviewers
@Benglin,@vmoyseenko, please take a look.

Links to YouTrack:
[MAGN-4673](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4673) DUI: The classes that were opened should be closed when the category is closed.
[MAGN-4669](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4669) DUI: Clicking on an expanded class icon should collapse the list
I think there is a confusion of the usage of ```overrideVisibility```. This data member has the ability to *control* the visibility of ```ClassDetailsVisibility``` when it is set to ```false```. When it is ```true```, the final value of ```ClassDetailsVisibility``` will then be dependent on the lists like ```createMembers```, etc.

To avoid the confusion, let's rename it to ```hideClassDetails```. So the whole property should look this way:

```cs
private bool hideClassDetails = false;

public bool ClassDetailsVisibility
{
    set
    {
        // If a caller sets the 'ClassDetailsVisibility' to 'false',
        // then it is intended that we hide away the class details.
        hideClassDetails = !value;
    }
    
    get
    {
        if (hideClassDetails)
            return false;

        // If we don't forcefully hide the class detail, then the overall 
        // visibility is dependent on the availability of the following lists.
        return createMembers.Any() || actionMembers.Any() || queryMembers.Any();
    }
}
```