support delegate events other than `this.element` #14

```
this.delegateEvents()
this.delegateEvents({
  'click p': 'fn1',
  'click li': function() {}
})
this.delegateEvents('click p', fn1)
this.delegateEvents('click p', function() {})
this.delegateEvents('#trigger', 'click p', fn1)
this.delegateEvents($('#trigger'), 'click', function() {})

```
support undelegateEvents #14

```
.undelegateEvents()
.undelegateEvents(events)
.undelegateEvents(element, events)
```