Allow nested ui elements

This pull request allows nested ui elements.

For example:

```js
ui: {
  segment: [
    'input[name=segment0]',
    'input[name=segment1]'
  ],
  form: {
    submit: 'input[type=submit]'
  }
}
```

will be accessible by:

```js
this.ui.segment[0];
this.ui.form.submit;
```