DUI: icons for class buttons, method buttons, tooltips.

This PR was made to implement Small icons for class buttons & method buttons; Large icons for tooltips.
# Before
![image](https://cloud.githubusercontent.com/assets/8158404/4057010/ea287b00-2dc2-11e4-899b-03e68c08ae5b.png)

# After
![capture](https://cloud.githubusercontent.com/assets/8158404/4061382/81977b10-2df7-11e4-8b18-78f188937443.PNG)

# Pay attention
I know that it's bad, when I change a lot of code, but... You should pay attention on `BrowserInternalElement`. It's thing from which we draw class button(and it had only Name and that's all). I had to add to its' constructor 1 more value `assembly`, so that class button will know in which assembly should it search icon for itself.

# Reviewers

@Benglin, please take a look.

P.S. Large icon have not done yet.
Hi Anna, since the concept of ```ResourceAssembly``` is introduced at the level of ```BrowserInternalElement```, then I think most icon loading code should be moved to that level. That includes:

1. ```ResourceAssembly``` property should only be in ```BrowserInternalElement``` (not ```virtual```).
2. ```public BitmapImage SmallIcon``` should only be in ```BrowserInternalElement``` (not ```virtual```).
3. ```GetSmallIcon``` should only be in ```BrowserInternalElement``` level.
4. Introduce a new ```virtual string GetResourceName``` as below:

    ```cs
    // In BrowserInternalElement class
    protected enum ResourceType
    {
        SmallIcon, LargeIcon
    }

    // In BrowserInternalElement class
    protected virtual string GetResourceName(ResourceType resourceType)
    {
        return string.Empty;
    }

    // In derived classes that need to show icon (e.g. NodeSearchElement)
    protected override string GetResourceName(ResourceType resourceType)
    {
        if (resourceType == ResourceType.SmallIcon)
            return this.member._fullName;

        // Other cases for large icon...
    }
    ```