Ur id fix

Fix the way widget components are discovered. Now toggler data-ur-id's, duplicate buttons, deeper nesting is possible.

This should now work:
```html
<div data-ur-set="toggler">
  <div>
    <div data-ur-toggler-component="button">Button 1</div>
    <div data-ur-toggler-component="content">Content 1</div>
  </div>
</div>

<div data-ur-set="toggler">
  <div data-ur-toggler-component="button">Button 2</div>
  <div data-ur-toggler-component="content">Content 2</div>
</div>

<div data-ur-set="toggler">
  <div data-ur-toggler-component="button">Button 3</div>
  <div data-ur-toggler-component="content">Content 3</div>
  <div data-ur-set="toggler">
    <div data-ur-toggler-component="button">Button 4</div>
    <div data-ur-toggler-component="content">Content 4</div>
  </div>
</div>

<div data-ur-toggler-component="button" data-ur-id="a">Button 5</div>
<div data-ur-toggler-component="content" data-ur-id="a">Content 5</div>

<div data-ur-set="toggler">
  <div data-ur-toggler-component="button" data-ur-id="b">Button 6</div>
  <div data-ur-toggler-component="content" data-ur-id="b">Content 6</div>
  <div data-ur-toggler-component="button" data-ur-state="enabled">Button 7</div>
  <div data-ur-toggler-component="content" data-ur-state="enabled">Content 7</div>
</div>

<div data-ur-set="toggler" data-ur-id="c">
  <div data-ur-toggler-component="button">Button 8</div>
</div>
<div data-ur-set="toggler" data-ur-id="c">
  <div data-ur-toggler-component="content">Content 8</div>
</div>

<div data-ur-set="toggler">
  <div data-ur-toggler-component="button">Button 9</div>
  <div data-ur-toggler-component="button">Button 9</div>
  <div data-ur-toggler-component="content">Content 9</div>
  <div data-ur-toggler-component="content">Content 9</div>
</div>
```

New way findElements works:

```html
<div data-ur-toggler-component="button" data-ur-id="a" id="b">Button</div>
<div data-ur-toggler-component="content" data-ur-id="a" id="c">Content</div>
```
results in `a: {button: [Element#b], content: [Element#c]}`

```html
<div data-ur-set="toggler" id="a">
  <div data-ur-toggler-component="button" id="b">Button</div>
  <div data-ur-toggler-component="button" id="c">Button</div>
  <div data-ur-toggler-component="content" id="d">Content</div>
  <div data-ur-toggler-component="content" id="e">Content</div>
  <div data-ur-toggler-component="random" id="f">Random</div>
</div>
```
results in `1: {set: Element#a, button: [Element#b, Element#c], content: [Element#d, Element#e], random: [Element#f]}`

```html
<div data-ur-set="zoom" data-ur-zoom-component="view" id="a">
  <div data-ur-zoom-component="button" id="b">Button</div>
</div>
```
results in `1: {set: Element#a, view: [Element#a], button: [Element#b]}`