Event bus and Aspect weaver

Hi Vadim,
Hope you are well!

I would like to introduce event bus for your amazing presentation engine. It helps to tracking for changing presentation modes or changing slides and do appropriate actions.

My code is based on the [Backbone.Events](http://backbonejs.org/#Events), but much simplier. As usual, author can subscribe, unsubscribe and trigger event.

Second part of the code is aspect weaver. It wraps particular Shower method with custom fuction, which fires `before` and `after` events. So, author can subscribe to this events in his/her code without any modification of the Shower core. The main purpose of such events will be creating and destroying complex animation on enter and exit respectively.

For example:

```html
<script src="shower/shower.min.js"></script>
<script src="shower/shower-events.js"></script>
<script>
  shower.weaver('go');
  shower.on('go:before', function () { alert('before'); });
  shower.on('go:after', function () { alert('after'); });
</script>
```

Every time presenter changes slides it will see two alerts.


It might be better to move my code to the dedicated repo or integrate it with core. I would like to hear any feedback from you. 

Have a nice day,
V.