Fully Documented and Object Oriented Fart

This refactoring of the `fartscroll.js` wont change any existent behavior, the smell will be the same. When this is merge the code will be much more beautiful and we will be able to fart anywhere we want too.

```javascript
// Now you can just fart!
var fart = new Fart();
fart.play();
```

The `fartscroll` method got much simpler and now we should the to make other events fart, you can fart on the command like, you can fart on form validations... basically now we should be able to fart anyway you like at any where you want to.