DUI: key navigation. Part 3

Yellow navigation is from [first PR](https://github.com/Benglin/Dynamo/pull/123).
Pink is from [second PR](https://github.com/Benglin/Dynamo/pull/127).
And green is from this one.
This PR makes navigation between categories possible.
![image](https://cloud.githubusercontent.com/assets/8158404/4702751/8d194b42-5865-11e4-9709-ef0f2deffccb.png)
This PR should be merged after [second](https://github.com/Benglin/Dynamo/pull/127).

Reviewers
@Benglin ,@vmoyseenko, please take a look.

Link to YouTrack:
[MAGN-5072](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-5072) DUI: Navigate between Categories
When we get here, it means the key event is being handled no matter what. So I think to improve the readability of the following codes, you may consider moving ```e.Handled = true;``` to the very end of this method, and remove all the ```return``` statements.

```cs
if (e.Key == Key.Up)
{
    var memberGroupsList = WPF.FindChild<ListBox>(nextFocusedCategory, "MemberGroupsListBox");
    var lastMemberGroup = GetListItemByIndex(memberGroupsList, memberGroupsList.Items.Count - 1);
    var membersList = WPF.FindChild<ListBox>(lastMemberGroup, "MembersListBox");
    
    // If key is up, then we have to select the last method button.
    GetListItemByIndex(membersList, membersList.Items.Count - 1).Focus();
}
else // Otherwise, Down was pressed, and we have to select first class/method button.
{
    if (nextFocusedCategoryContent.Classes.Count > 0)
    {
        // If classes are presented, then focus on first class.
        FindFirstChildListItem(nextFocusedCategory, "SubCategoryListView").Focus();
    }
    else
    {
        // If there are no classes, then focus on first method.
        FindFirstChildListItem(nextFocusedCategory, "MemberGroupsListBox").Focus();
    }
}

e.Handled = true;
```