Sidebar behavior when navigating by keyboard, some refactoring

Current implementation of function "neighbor" assumes that keyboard navigation "locked" inside node group:
```
function neighbor (node, neighborFunc) {
  node = neighborFunc(node);
  while (node != null && (node.hidden || node.disabled)) {
    if (node.group) break; else node = neighborFunc(node);
  }
  return node;
}
```


If it's needed that keyboard navigation must not to be "locked" inside node group, then implementation of function "neighbor" can be changed like this:
```
function neighbor (node, neighborFunc) {
  node = neighborFunc(node);
  while (node != null && (node.hidden || node.disabled || node.group)) { neighborFunc(node); }
  return node;
}
```