Call the debounced in the proper context

`debounce` is now consitent with the following description:
http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html
Add `lint` script
Use modern `createEvent` with the fallback to the deprecated version