title: Bind callback to the object instance
body: <p>I'd like to bind a class method to the object instance so that when the method is invoke as callback it can still access the object instance. I am using an event emitter to generate and fire events. </p>
  
  <p>This is my code:   </p>
  
  <pre><code>#!/usr/bin/env python3
  from pyee import EventEmitter
  
  class Component(object):
    _emiter = EventEmitter()
  
    def emit(self, event_type, event):
      Component._emiter.emit(event_type, event)
  
  def listen_on(event):
    def listen_on_decorator(func):
      print("set event")
      Component._emiter.on(event, func)
      def method_wrapper(*args, **kwargs):
        return func(*args, **kwargs)
      return method_wrapper
    return listen_on_decorator
  
  class TestComponent(Component):
  
    @listen_on('test')
    def on_test(self, event):
      print("self is " + str(self))
      print("FF" + str(event))
  
  if __name__ == '__main__':
    t = TestComponent()
    t.emit('test', { 'a': 'dfdsf' })
  </code></pre>
  
  <p>If you run this code, an error is thrown : </p>
  
  <pre><code>  File "component.py", line 29, in &lt;module&gt;                                                                                                                                                         [0/1889]
      t.emit('test', { 'a': 'dfdsf' })
    File "component.py", line 8, in emit
      Component._emiter.emit('test', event)
    File "/Users/giuseppe/.virtualenvs/Forex/lib/python3.4/site-packages/pyee/__init__.py", line 117, in emit
      f(*args, **kwargs)
    File "component.py", line 14, in method_wrapper
      return func(*args, **kwargs)
  TypeError: on_test() missing 1 required positional argument: 'event'
  </code></pre>
  
  <p>This is caused by the missing self when the method <code>on_test</code> is called. </p>