using anonymous functions to extend events

I was never very happy with creating models to extend events. Sometimes I thought it would
be nicer if we could simply pass a function and guess what? We already can but we need to specify some parameters not needed. I've made them optional.

With this, we can extend events using the following code:
```php
Events::extend('on_before_render', function ($c) {
    $a = 1/0;
});
```