Flexible eventing following the Observable pattern. Influenced by NSNotificationCenter and Backbone.js