MAGN-4376: Long names need to be truncated.

# Preface
In this PR I have decided to solve 2 problems:
1. Divide long titles in words. 
e.g. BoundingBox -> Bounding Box
2. Too long titles cat with adding ".." to the end.
e.g. Contains(array: [], member: var) -> Contains (array: [..

# Before
1. *Division in words*

![image](https://cloud.githubusercontent.com/assets/8158404/4109407/7075123e-31e4-11e4-9184-7bd812e0209b.png)
2. *Too long titles*

![image](https://cloud.githubusercontent.com/assets/8158404/4109468/5c385f96-31e5-11e4-9dc3-dec7a5313ac5.png)

# After
1. *Division in words*

![image](https://cloud.githubusercontent.com/assets/8158404/4109478/85b6710a-31e5-11e4-90c4-ff5e64a96e5d.png)
2. *Too long titles*

![image](https://cloud.githubusercontent.com/assets/8158404/4109482/9270f172-31e5-11e4-8062-865efb12b36e.png)

# Solution
I have rewritten converted `FullyQualifiedNameToDisplayConverter`, that was used in tooltip(when we were deviding too long code into parts). Now it can change incoming string according your wishes.
Also I have added some constants and refactored `Binding` in .xaml files, so that it won't be too long.

# Reviewers
@Benglin, please take a look.

Link to YouTrack:
[MAGN-4376 Long names need to be truncated](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4376)
Can we make these statements a bit more readable? For example:

```cs
var curr = original[i];
var prev = original[i - 1];
if ((Char.IsUpper(curr) || curr.Equals('(')) && 
    ((prev != ' ') && (!Char.IsUpper(prev))))
{
    newText.Append(" ");
}
```