New design is bound to BrowserRootCategories collection

New design is bound to BrowserRootCategories collection. There are some bugs but we have something to show. Works correctly for Geometry category. Possible too long names of some functions. For example: `Geometry.Cuboid`.

@Benglin, please review.
I think we can remove ```isClassObjectSizeSet``` and use only one variable ```classObjectWidth```:

```cs
private double classObjectWidth = double.NaN;

protected override Size ArrangeOverride(Size finalSize)
{
    if (double.IsNaN(classObjectWidth))
    {
        // Make sure our assumption of the first child being a 
        // StandardPanel still holds (I believe it's a StandardPanel)?
        var firstChild = this.Children[0];
        if (!(firstChild is StandardPanel))
            throw new InvalidOperationException(...);
        classObjectWidth = first.DesiredSize.Width;
    }
}
```