Cleanup
Added listeners and listenersMatching

- listeners returns all callbacks that where registered using the given
  event.
- listenersMatching returns all callbacks that where registered using an
  event that matches the given string.
Improved internal function names
Renamed emitsEvent to emitsNewListener
Renamed test-events to test-event-newListener
Emitting 'removeListener' events
Cleanup

- Using Array.prototype.push.apply(array) instead of
array.push.apply(array)
- Replaced View.protoype with variable
Support mutliple listener registrations by passing an object

- hub.on({ ... })
- hub.addListener({ ... })
- hub.before({ ... })
- hub.after({ ... })
- hub.once({ ... })
- hub.onceBefore({ ... })
- hub.onceAfter({ ... })
- hub.un({ ... })
- hub.removeListener({ ... })
- All View methods forwarding to the above also support this feature.

The hub() function already supported this feature.
Up version