"No matches found" shouldn't appear if some AddonRootCategories element is presented

#### Purpose

1. "No matches button" doesn't take into account visibility of `AddonRootCategories` elements.
2. "Add-ons" label should be added above addons in search results.

#### Modifications

Created property `SearchViewModel.SearchAddonsVisibility`. It checks visibility of root categories. The property is used in decision to show "No matches found" button.

"Add-ons" label is moved to `AddonsTreeView` control.

#### Additional references

[MAGN-5058](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5058).
[MAGN-5077](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5077).

#### Reviewers

@aosyatnik, @Benglin, please, take a look.
If someone changes the XAML in the future, and made some mistake, I'd like us to throw an exception from here (if we allow WPF to throw an exception about XAML, it usually is quite vague and hard to understand), so do update the converter content to be like this:

```cs

// This converter expects the following properties to be bound through XAML 
// (these properties are also to be bound in the exact order as stated here):
// 
//      SearchViewModel.SearchRootCategories.Count (int)
//      SearchViewModel.SearchAddonsVisibility (bool)
//      SearchViewModel.SearchText (string)
// 
const string message = "Wrong properties bound to SearchResultsToVisibilityConverter";

if (values.Length != 3)
    throw new InvalidArgumentException(message);

if (!(values[0] is int) || !(values[1] is bool) || !(values[2] is string))
    throw new InvalidArgumentException(message);

var count = ((int)values[0]);
var addOnVisible = ((bool)values[1]);
var text = ((string)values[2]);

if (count == 0 && (addOnVisible == false) && !string.IsNullOrEmpty(text))
    return Visibility.Visible;
    
return Visibility.Collapsed;
```